Dll可以预先把某些静态资源预先编译,产出一个映射文件(通常为一个json文件),指向对应的文件,再次编译时webpack.config.js 通过映射文件查找到编译完成的文件,不打包直接输出到build文件夹中.
webpack.dll.js
添加一个单独的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/manifest.json')
})
]
}
webpack.config.js
中配置 DllReferencePlugin
以获得经过dll处理的映射文件且添加对应的文件进html引用
new webpack.DllReferencePlugin({
manifest:resolve(__dirname,'dll/manifest.json')
}),
new AddAssetHtmlPlugin({ filepath:resolve(__dirname,'dll/jquery.js'),
publicPath:''
}),