webpack

vue-cli升级webpack4.x不完全指南

2018-03-12  本文已影响6634人  e93a88ffeabd

前言

2018年2月25日,webpack4正式与我们见面,趁着年后稍轻松的这段时间,着手对项目中的webpack进行了升级

基本信息

本次升级的项目是公司中的小项目(所以才能让我乱玩),技术架构是vue全家桶,项目直接是vue-cli(2.9.3)生成出来的

start

development production
针对快速增量重建进行了优化 对于打包速度进行优化
开发模式下支持注释和提示,并且支持 eval 下的 source maps 不支持watching
自动设置process.env.NODE_ENV的值为development 自动设置process.env.NODE_ENV的值为production
自动对代码进行压缩等

设置完mode后,原先文件中的webpack.DefinePlugin/UglifyJsPlugin等即可删除了,我们重启项目

正常启动
splitChunks: {
  chunks: "initial", // 必须三选一: "initial" | "all"(默认就是all) | "async"    minSize: 0, // 最小尺寸,默认0   minChunks: 1, // 最小 chunk ,默认1   maxAsyncRequests: 1, // 最大异步请求数, 默认1   maxInitialRequests : 1, // 最大初始化请求书,默认1   name: function(){}, // 名称,此选项可接收 function   cacheGroups:{ // 这里开始设置缓存的 chunks     priority: 0, // 缓存组优先级     vendor: { // key 为entry中定义的 入口名称       chunks: "initial", // 必须三选一: "initial" | "all" | "async"(默认就是异步)        test: /react|lodash/, // 正则规则验证,如果符合就提取 chunk       name: "vendor", // 要缓存的 分隔出来的 chunk 名称        minSize: 0,       minChunks: 1,       enforce: true,       maxAsyncRequests: 1, // 最大异步请求数, 默认1       maxInitialRequests : 1, // 最大初始化请求书,默认1       reuseExistingChunk: true // 可设置是否重用该chunk(查看源码没有发现默认值)     }   } } },
  minSize: 0, // 最小尺寸,默认0
  minChunks: 1, // 最小 chunk ,默认1
  maxAsyncRequests: 1, // 最大异步请求数, 默认1
  maxInitialRequests : 1, // 最大初始化请求书,默认1
  name: function () {}, // 名称,此选项可接收 function
  cacheGroups: { // 这里开始设置缓存的 chunks
    priority: 0, // 缓存组优先级
    vendor: { // key 为entry中定义的 入口名称
      chunks: "initial", // 必须三选一: "initial" | "all" | "async"(默认就是异步)
      test: /react|lodash/, // 正则规则验证,如果符合就提取 chunk
      name: "vendor", // 要缓存的 分隔出来的 chunk 名称
      minSize: 0,
      minChunks: 1,
      enforce: true,
      maxAsyncRequests: 1, // 最大异步请求数, 默认1
      maxInitialRequests : 1, // 最大初始化请求书,默认1
      reuseExistingChunk: true // 可设置是否重用该chunk(查看源码没有发现默认值)
    }
  }
}

end

将上述步骤执行后即可成功升级webpack到4.x,但这也只是基础升级而已,更多好玩的特性还有待各位开发!

上一篇 下一篇

猜你喜欢

热点阅读