在webpack4.0版本中已经废弃了之前 UglifyJsPlugin和CommonsChunkPlugin用法

来源:5-1 正式环境打包优化

慕侠3851047

2018-07-12

config.plugins.push(
  new webpack.optimize.UglifyJsPlugin(),
  new webpack.optimize.CommonsChunkPlugin({
    name: 'vendor' // vendor 中应用的包,不在打包到 app.js 中
  }),
  new webpack.optimize.CommonsChunkPlugin({
    name: 'manifest',
    minChunks: Infinity // 无限压缩
  })
)

这用法已经废弃了

百度搜索了几个帖子

迁移到webpack4:从webpack.optimize.CommonsChunkPlugin到config.optimization.splitChunk,以及有个搜出来的中文解决办法是错的

在webpack4.0版本中已经废弃了之前 UglifyJsPlugin的用法,用的是config.minimize

配置 new webpack.optimize.CommonsChunkPlugin

参考的解决方法:

config.optimization = {
  minimizer: [
    new UglifyJsPlugin({
      uglifyOptions: {
        compress: false
      }
    })
  ],
  splitChunks: {
    cacheGroups: {
      vendor: {
        name: 'vendor',
        chunks: 'initial',
        minChunks: 2,
        maxInitialRequests: 5,
        minSize: 0,
        priority: 10,
        enforce: true
      }
    }
  }
}


写回答

2回答

Jokcy

2018-07-13

是的。

0
2
Jokcy
回复
慕侠3851047
这是你自己发现的,没必要谢我哦,相信你能自己学习肯定会越来越好
2018-07-16
共2条回复

渴望做梦

2018-10-28

根据我查的资料,以及亲自实践,补充一下:

1、通过设置 optimization.splitChunks.chunks: "all" 可以启动默认的代码分割配置项

默认的分割规则是:

当前模块是公共模块(多处引用)或者模块来自 node_modules
当前模块大小大于 30kb
如果此模块是按需加载,并行请求的最大数量小于等于 5如果此模块在初始页面加载,并行请求的最大数量小于等于 

所以如果你觉得webpack默认的配置规则符合你的要求,完全和可以用默认配置,官方其实也推荐使用默认配置。

2、webpack4分离manifest的方法,如果有其它需求可以去官方文档查看。

optimization: {
   splitChunks: {
     ...
   },runtimeChunk: {
     name: "manifest",
   },
},


0
0

React全栈+服务器渲染(ssr)打造社区Webapp

【毕设面试】只会写业务代码?out了,带你学会搭建属于自己的工程!

768 学习 · 414 问题

查看课程