webpack5 --- 将特定的代码单独打包
在之前说过可以将公共代码分离打包出来, 但是如果功能代码比较多的时候,都打包都一块会导致单个代码比较大,那么如果将已知的公共文件以CDN的方式引入,那就会减小单个文件的体积,也会提高打包速度
实现上面的要求我们可用使用DLL这个插件,插件是webpack 下的插件, 无需单独虾藻
- 首先创建一个dll 的配置文件 webpack.dll.js
const {resolve} = require('path');
const { webpack } = require('webpack');
module.exports = {
entry: {
jquery: ['jquery']
},
output: {
filename: '[name].js',
path: resolve(__dirname, 'dll'),
library: '[name].[hash]'
},
plugins:[
new webpack.DllPlugin({
name: '[name].[hash]',
path: resolve(__dirname,'dll')
})
],
mode: "production"
}
- 在主文件 webpack.config.js 中添加处理项
const { webpack } = require('webpack');
const AddAssetHtmlWebpackPlugin = require('add-asset-html-webpack-plugin');
plugins:[
new webpack.DllReferencePlugin({
mainfest: resolve(__dirname,'dll')
})
new AddAssetHtmlWebpackPlugin({
filepath: resolve(__dirname,'dll')
})
]