webpack CommonsChunkPlugin插件vendor hash变化问题

这个问题其实是因为webpack在每次执行的过程中都会生成一段带有模块标示的js真正被执行的时候会用到的脚本 官方称 runtime and module manifest。这个是在真正使用打包后js的时候要用到的,所以不能干掉。这段文件打开看会发现,里面包含了app.js和vendor.js的md5戳,那么一旦app.js发生了修改,就意味着这个文件也会修改,因为app.js对应的md5变了。如果我们使用了CommonsChunkPlugin进行提取的时候,势必要运行webpack,那么在提取vendor的过程中,webpack就会把这个脚本插入到vendor里了。造成每次app.js变了,也会影响vendor.js。
解决办法就是,把运行webpack生成一段带有模块标示的脚本这件事单独再运行一次,让这段脚本生成到自己的文件里,自己去改变。如下自己再提取一次,生成最后的一个js文件,那么这次的执行产生的带有模块标示的脚本就会加入到这里面了。
这个manifest 负责webpack产生的文件的模块封装。如果干掉这些脚本,就会报错啦。

new webpack.optimize.CommonsChunkPlugin({
      name: 'manifest',
      chunks: ['app', 'vendor'] // 或者不写这一行,默认全部chunk
})

你可能感兴趣的:(webpack CommonsChunkPlugin插件vendor hash变化问题)