美文网首页
webpack CommonsChunkPlugin插件vend

webpack CommonsChunkPlugin插件vend

作者: Jalon | 来源:发表于2017-02-21 16:57 被阅读0次

    这个问题其实是因为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插件vend

          本文链接:https://www.haomeiwen.com/subject/xkyuwttx.html