webpack 优化之 DllPlugin
2019-06-03 本文已影响1人
赵永盛
作用: 直接引用打包好的第三方包, 不用每次再打包
假设项目中使用了 vue, vue-router, element-ui
首先需要创建 webpack.dll.conf.js:
const path = require('path')
const webpack = require('webpack')
module.exports = {
entry: {
vue: ['vue', 'vue-router'],
ui: ['element-ui']
},
output: {
path: path.join(__dirname, '../src/dll'),
filename: '[name].dll.js',
library: '[name]'
},
plugins: [
new webpack.DllPlugin({
path: path.join(__dirname, '../src/dll', '[name]-manifest.json'),
name: '[name]'
}),
new webpack.optimize.UglifyJsPlugin()
]
}
然后 webpack --config ./build/webpack.dll.conf.js
打包:
![](https://img.haomeiwen.com/i13839095/bbd4672c198b3593.png)
上述是打包好后的代码,如何使用呢?
使用 DllReferencePlugin
在 build/webpack.config.js 中添加下列插件:
![](https://img.haomeiwen.com/i13839095/86124118c1a7c22f.png)
打包结果:
![](https://img.haomeiwen.com/i13839095/11bb23de2cfb153a.png)
实测打包时间为原来的四分之一,当然项目大可能没这么明显,但是效果是显著的。