我使用DllPlugin优化打包,打包后的dll.js文件有810kb,还有vendor.js 264kb;而且时间只快了3秒
但是在没有用DllPlugin的时候,vendor.js一共才513kb。
我的element-ui是按需引入的,不知道这个和用DllPlugin打包有没有关系
另外还想问下,npm run build
的时候,如下图,这里等待的时间很长才会出现 / building for production 这个,这里是为什么呢?
webpack.dll.conf.js如下:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: {
vendor: [
'vue',
'vue-router',
'vuex',
'axios',
'element-ui',
'qs',
'signalr'
]
// polyfill:['core-js/fn/promise','whatwg-fetch']
},
output: {
path: path.join(__dirname, '../static/dll'),
filename: '[name].dll.js',
library: '[name]_library',
},
plugins: [
new webpack.optimize.UglifyJsPlugin({ // uglifjs压缩
compress: {
warnings: false
}
}),
new webpack.DllPlugin({
path: path.join(__dirname, 'dll', '[name]-manifest.json'),
name: '[name]_library', // 需要和output.library值保持一致
context: __dirname
})
]
};
按需加载
element-ui
的不要放在dll里面,因为这个只是打包npm包,他不执行按需加载,dll里面一般放入一些固定不频繁修改的npm包