webpack的配置处理
1、webpack对脚本的处理
1、Js用什么loader加载?
1>webpack 本身就支持js的加载,
2>通过babel-loader ES2015 加载js,再用 babel-polyfil 做兼容性适配
2、如何处理多个入口文件?
将entry 写成一个对象的形式:
entry: {
'common': ['./src/page/common/index.js'],
'index': ['./src/page/index/index.js'],
}
3、output要分文件夹存放目标文件,如何设置?
output: {
path: path.resolve(__dirname, 'dist'),
publicPath:'/dist/',
filename: 'js/[name].js'
},
这样配置的文件会在根目录编译生成dist文件夹,在dist文件夹下创建js文件夹存放打包的js文件
4、如何提取公共模块?
entry: {
'common': ['./src/page/common/index.js']
}
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: "common",
filename: "js/base.js"
}),
]
2、webpack对样式的处理
1、样式使用怎样的loader?
2、webpack将css打包成js模块,但是css不想在js运行完才开始加载,想把css打包成单独的css文件该如何处理?
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var config = {
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract("style-loader","css-loader")
},
{
test: /\.(png|gif|jpg|woff|svg|eot|ttf|ico)\??.*$/,
loader: "url-loader?limit=100&name=resource/[name].[ext]"
},
{
test:/\.string$/,
loader:'html-loader',
query:{
//告诉html-loader在加载文件的时候做最小化压缩
minimize:true,
//指定是否要删除属性上的引号
removeAttributeQuotes:false
}
}
]
},
plugins: [
//把CSS单独打包到文件里
new ExtractTextPlugin('css/[name].css'),
//独立通用模块到js/base.js
new webpack.optimize.CommonsChunkPlugin({
name: "common",
filename: "js/base.js"
}),
//html模板的处理
new HtmlWebpackPlugin(getHtmlConfig('index',"首页")),
]
}
3、webpack对html模板如何处理?
不对html处理时,会出现什么问题:
1、在引入css文件时,在后面是需要加版本号的,并且这个版本号是不能用手工来维护的,每次上线会把这个版本号改掉
2、html是在src文件夹下,没有在打包形成的dist文件夹下,在发布的时候会只发布dist文件夹下,而src文件夹下是不管的,所以文件的位置也是不对的
处理方法:
const HtmlWebpackPlugin = require('html-webpack-plugin');
//获取html-webpack-plugin参数的方法
var getHtmlConfig=function (name,title) {
return {
template:'./src/view/'+name+'.html',
filename:'view/'+name+'.html',
favicon:'./favicon.ico',
//inject:true时,不用手动引入js与css文件,它会自动的注入到html页面
inject:true,
//hash会在我们引入的js与css后面加一个版本号
hash:true,
chunks:['common',name],
title:title
};
};
var config = {
plugins: [
//html模板的处理
new HtmlWebpackPlugin(getHtmlConfig('index',"首页")),
new HtmlWebpackPlugin(getHtmlConfig('list',"商品列表")),
new HtmlWebpackPlugin(getHtmlConfig('detail',"商品详情"))
]
}
4、webpack-dev-server 自动编译处理
//环境变量的配置dev /online
var WEBPACK_ENV=process.env.WEBPACK_ENV||'dev';
if('dev'===WEBPACK_ENV){
config.entry.common.push('webpack-dev-server/client?http://localhost:8088/');
//common 模块时公共模块,已经打包进每一个页面,而webpack-dev-server 需要监控到每一个页面的变化,所以将webpack-dev-server路径添加进common的路径数组中
}
webpack的配置处理的更多相关文章
- webpack常用配置总结
1. webpack简介 webpack 是一个模块打包工具.它使得模块相互依赖并且可构建等价于这些模块的静态资源.相比于已经存在的模块打包器(module bundler),webpack的开发动机 ...
- webpack安装配置使用教程详解
webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...
- webpack实用配置
前面的话 上文介绍了webpack入门,本文将详细介绍webpack实用配置 版本号 以entry.js打包为bundle.js为例,出口的filename可以设置为[id].[name].[hash ...
- 在找一份相对完整的Webpack项目配置指南么?这里有
Webpack已经出来很久了,相关的文章也有很多,然而比较完整的例子却不是很多,让很多新手不知如何下脚,下脚了又遍地坑 说实话,官方文档是蛮乱的,而且有些还是错的错的..很多配置问题只有爬过坑才知道 ...
- webpack安装配置
webpack安装 1.安装之前你必须要安装node.js,如果你没安装可以在node.js网去下载node.js 2.全局安装webpack,打开cmd输入npm install webpack - ...
- vue-cli+webpack打包配置
vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...
- Webpack的配置与使用
一.什么是Webpack? WebPack可以看做是模块打包机.用于分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将 ...
- 深入浅出的webpack构建工具---webpack基本配置(一)
深入浅出的webpack构建工具---webpack基本配置(一) 阅读目录 一:webpack入门构建: 1. 安装webpack到全局 2. 安装webpack到本项目. 3. 如何使用webpa ...
- webpack详细配置解析
阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...
- webpack快速入门——实战技巧:webpack模块化配置
首先在根目录,新建一个webpack_config文件夹,然后新建entry_webpack.js文件,代码如下: const entry ={}; //声明entry变量 entry.path={ ...
随机推荐
- OSI七层和TCP/IP四层的关系、TCP与UDP、HTTP、Socket
HTTP(应用层协议):超文本传输协议,HTTP协议是建立在TCP协议之上的一种应用. HTTP协议详细解释 2Http详解 TCP(面向连接的传输层协议):transmission control ...
- LeetCode 230 Kth Smallest Element in a BST 二叉搜索树中的第K个元素
1.非递归解法 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...
- lecture-7 递归
1.例题--排列 Permutation Given a collection of distinct numbers, return all possible permutations.For ex ...
- JAVA多线程之Semaphore
Semaphore:动态增减信号量,用于控制对某资源访问的同一时间的并发量.类似于令牌,谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待. [如何获取]:semaphore.tryA ...
- 移动开发,Webapp 淘宝手机 rem 布局
(function (doc, win) { var docEl = doc.documentElement, resizeEvt ="orientationchange"in w ...
- <Win7硬件故障分析>
查看当前系统正在运行的硬件信息. 右击计算机——属性——设备管理器看到下面: 一些常见的硬件故障: 主板故障 >开机不正常,偶尔出现突然的断电现象 >明明自己选择了关机,但是还是无法关机或 ...
- 用命令行的方式将本地项目上传到git
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...
- 关于response.write(alert(''))弹窗改变页面格式问题
不建议使用 Response.Write("<script>alert('增加年级失败')</script>"); 而使用 Page.ClientScrip ...
- java数据结构和算法07(2-3-4树)
上一篇我们大概了解了红黑树到底是个什么鬼,这篇我们可以看看另外一种树-----2-3-4树,看这个树的名字就觉得很奇怪.... 我们首先要知道这里的2.3.4指的是任意一个节点拥有的子节点个数,所以我 ...
- MySQL 返回指定长度的字符串
今天在做 iblog 项目时,有一个需求是,从 MySQL 返回某个字段的值要时要指定长度,上网搜到的方法是使用 MySQL 的字符串处理函数,如 left(str, length),right(st ...