网上关于webpack的文章已经不少了,本文只是从我的理解的角度进行总结和整理。css
./dist
;下面分别看看每一个概念的一些用法,要注意的是webpack4咱们不作任何设置都会默认配置,能够直接打包。html
咱们在使用vue-cli 2.x初始化出来的项目,配置文件里设置了单一入口vue
webpack.base.conf.jsnode
module.exports = {
...
entry: './src/main.js',
...
}
复制代码
怎么实现多入口呢?以下webpack
module.exports = {
...
entry: ['./src/main.js', './src/vendors.js']
...
}
// 或者
module.exports = {
...
entry: {
main: './src/main.js',
vendors: './src/vendors.js'
}
...
}
复制代码
多入口的使用场景:分离应用程序和第三方库入口和多页面应用。web
基础配置vue-cli
// 单一入口配置
module.exports = {
...
output: {
filename: 'bundle.[hash:5].js',
path: path.resolve(__dirname,'dist')
}
...
}
// 多入口配置
module.exports = {
...
output: {
filename: '[name].[hash:5].js',
path: path.resolve(__dirname,'dist')
}
...
}
// [name]的值就是多入口中entry的键值
复制代码
webpack 模块可以以各类方式表达它们的依赖关系,webpack的模块规范能够是浏览器
webpack 经过 loader 能够支持各类语言和预处理器编写模块。loader的执行顺序是从下往上,从右到左。sass
module: {
...
rules: [
{
test: /\.css/,
use:['style-loader','css-loader']
}
]
...
}
复制代码
如上代码,执行转化css先会用css-loader
(负责解析@import引入的css)转化后,再使用style-loader
插入到head标签中。 在实际项目中,咱们可能会用到less、scss或者stylus等等来编写css,那咱们就要安装对应的loader进行预处理了;bash
sass-loader
调用了node-sass
把scss
转化成css
,若是咱们是用scss
,就须要在css-loader
后面加上sass-loader
。插件在于解决loader没法实现的事情,是webpack的支柱功能。插件的使用方法就是new一个实例。webpack的插件不少,咱们能够根据实际的须要进行安装使用。在咱们打包过程当中,js,css,html的压缩就是经过配置插件来完成的。这里须要提醒注意的一点是,咱们使用vue-cli初始化出来的项目,默认会压缩js,不压缩css,若是咱们本身手动加入了压缩css的插件,须要把压缩js的插件也手动加入。
Chunk和context了解就行这里不展开去讲了。