引入
在我们的项目中,免不了要引入许多的第三方模块。这些第三方模块在打包的时候就会被打包进最后生成的文件之中。导致最后生成的文件过大的同时也增加了打包的时间。
这时我们就会想,如果这些第三方模块能只打包一次,之后就直接使用这些打包好的模块多好,毕竟这些第三方的模块代码不会有变动。
那么,我们再次打包目标代码时就不需要再从node_modules
中去寻找第三方模块,而是从我们预先打包出的文件中去寻找。
这种想法颇似动态链接库(DLL)。
流程
由于需要单独打包第三方模块,也就意味着我们需要一个独立的Webpack配置文件,我命名为webpack.dll.js
。内容如下:
const path = require('path');
const webpack = require('webpack');
module.exports = {
mode: 'production',
entry: {
react: ['react', 'react-dom'],
vendors: ['lodash']
},
output: {
path: path.resolve(__dirname, 'dll'),
filename: '[name].dll.js',
library: '[name]'
},
plugins: [
new webpack.DLLPliugin({
name: '[name]'