利用DllPlugin和DllReferencePlugin预编译资源模块,通过DllPlugin来对那些我们引用但是绝对不会修改的npm包来进行预编译,再通过DllReferencePlugin将预编译的模块加载进来。
使用Happypack 实现多线程加速编译,要注意的第一点是,它对file-loader和url-loader支持不好,所以这两个loader就不需要换成happypack了,其他loader可以类似地换一下
使用Tree-shaking和Scope Hoisting来剔除多余代码
使用fast-sass-loader代替sass-loader
babel-loader开启缓存
babel-loader在执行的时候,可能会产生一些运行期间重复的公共文件,造成代码体积大冗余,同时也会减慢编译效率
可以加上cacheDirectory参数或使用 transform-runtime 插件试试
通过externals配置来提取常用库
// webpack.config.js
use: [{
loader: 'babel-loader',
options: {
cacheDirectory: true
}]
use: [{
loader: 'expose-loader',
options: '\$'
}, {
loader: 'expose-loader',
options: 'jQuery'
}]
// \@2
externals: {
jquery: 'jQuery'
},
// \@3
new webpack.ProvidePlugin({
\$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
}),
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。