时间:2021-07-01 10:21:17 帮助过:24人阅读
const path = require('path')const webpack = require('webpack');module.exports = {
entry: {vendor: ['react', 'react-dom', 'react-hot-loader', 'immutable', 'redux', 'react-redux', 'react-router-dom', 'redux-logger', 'redux-persist', 'redux-persist-transform-immutable', 'redux-thunk'],
},
output: {filename: 'js/[name].js',path: path.resolve(__dirname, 'public'),library: '[name]', // 当前Dll的所有内容都会存放在这个参数指定变量名的一个全局变量下,注意与DllPlugin的name参数保持一致
},
plugins: [new webpack.DllPlugin({ path: path.resolve(__dirname, 'public/manifest.json'), // 本Dll文件中各模块的索引,供DllReferencePlugin读取使用 name: '[name]',}),
],}在原来的配置文件中添加 DllReferencePlugin 插件
new webpack.DllReferencePlugin({ manifest: require('./public/manifest.json'), // 指定manifest.json name: 'vendor', // 当前Dll的所有内容都会存放在这个参数指定变量名的一个全局变量下,注意与DllPlugin的name参数保持一致}),终端先运行:webpack -p --progress --config ./webpack.config.dll.js
把库文件先打个包,只要库不变,以后就用这个包了,再打包业务代码,完活。
推荐策略:
各行其是。
如果是单页应用,那只用DllPlugin打包库文件即可,业务代码一个包搞定。
如果是多页应用,DllPlugin打包完库文件,开发时可能会用很多公共的业务代码而且可能随时变动,这就要利用CommonsChunkPlugin来做他本该做的事,再把公共业务提取出来,至于缓存,起码在页面间切换时,公共部分还是会被缓存的。
以上就是为什么要分离第三方库?的详细内容,更多请关注Gxl网其它相关文章!