vue / vue-cli升级webpack4

本文详述了Vue项目从Webpack3到Webpack4的升级过程,包括升级相关依赖、安装新包、处理不兼容问题,修改配置文件,以及解决在开发和生产环境中遇到的各种错误。特别提到对HtmlWebpackPlugin、webpack-dev-server、eslint-loader和CommonsChunkPlugin的处理。
摘要由CSDN通过智能技术生成

vue升级webpack4.x


升级包

首先升级开发依赖中webpack构建流程中用到的loaderplugin以及它们的相关依赖升级到最新版本

yarn upgrade -L
安装包

webpack4.x 需要依赖webpack-cli

yarn add webpack-cli --dev

需要特别注意的依赖包extract-text-webpack-plugin

因为extract-text-webpack-plugin的最新正式版还没有对webpack4.x进行支持,所以有两个选择,第一个是:yarn upgrade extract-text-webpack-plugin@next升级到测试版,第二个是换成mini-css-extract-plugin,作者在这采用的第一种方案。

修改配置文件

webpack4内置了optimization.splitChunks、optimization.runtimeChunk代替CommonsChunkPlugin,
内置了optimization.noEmitOnErrors代替NoEmitOnErrorsPlugin
内置了optimization.namedModules代替NamedModulesPlugin
下面针对配置文件进行修改

修改开发环境webpack.dev.conf.js

增加设置modedevelopment,删除DefinePluginplugin中的环境变量设置,如果只用来设置环境变量,可以删除插件;
注释webpack.NamedModulesPluginwebpack.NoEmitOnErrorsPlugin

const devWebpackConfig = merge(baseWebpackConfig, {
  mode: 'development',
  // ....
  plugins: {
      // new webpack.NamedModulesPlugin(), 
      // new webpack.NoEmitOnErrorsPlugin(),
  }
修改生产环境webpack.prod.conf.js

增加设置modeproductionoptimization配置;删除DefinePluginplugin中的环境变量设置,如果只用来设置环境变量,可以删除插件;
注释webpack.optimize.CommonsChunkPluginuglifyjs-webpack-pluginwebpack.optimize.ModuleConcatenationPlugin
如果npm run build时报错Error: Path variable [contenthash] not implemented in this context: static/css/[name].[contenthash].css,将contenthash换成hash即可

const webpackConfig = merge(baseWebpackConfig, {
  mode: 
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值