当前位置: 首页 > news >正文

升级到webpack5

一、检查当前 Webpack 版本

在项目根目录运行以下命令确认当前版本:

npm list webpack

若版本低于 5.x,需升级。涉及到webpack版本相关插件可参照步骤二的方式进行升级。

二、​升级核心依赖

1.更新 @vue/cli 及相关插件

升级到支持 Webpack 5 的版本(建议 @vue/cli-service@5.x

npm install @vue/cli-service@5.0.8 --save-dev
npm install @vue/cli-plugin-babel@5.0.8 @vue/cli-plugin-eslint@5.0.8 --save-dev

2.​升级 Webpack 及配套工具

npm install webpack@5 webpack-cli@4 webpack-dev-server@4 --save-dev
npm install html-webpack-plugin@5 --save-dev  # 确保兼容 Webpack 5

3.​更新 Loader 和插件

确保所有 Loader 和插件兼容 Webpack 5,常见需升级的包括:

npm install css-loader@6 style-loader@3 --save-dev
npm install sass-loader@10 node-sass@6 --save-dev  # 解决 Node.js 高版本兼容问题
npm install vue-loader@15 --save-dev  # Webpack 5 需 vue-loader@15+

三、调整配置文件

1.修改 vue.config.js

移除或替换废弃属性:

  • **删除 stats**​:该属性已从 devServer 移至顶层配置。
  • ​**替换 disableHostCheck**​:改用 allowedHosts: 'all'
  • ​**删除 inline**​:该属性在 Webpack 5 中已无效。

启用持久化缓存​(Webpack 5 内置功能)

module.exports = {configureWebpack: {cache: { type: 'filesystem' },  // 替代 hard-source-webpack-pluginplugins: [new VueLoaderPlugin()  // 确保 vue-loader 插件正确引入]}
};

替换废弃配置​:

移除 url-loader 和 file-loader,改用 Webpack 5 内置资源模块

module.exports = {chainWebpack: config => {config.module.rule('images').test(/\.(png|jpe?g|gif)$/i).type('asset/resource');  // 替代 file-loader}
};

2.处理 Polyfill 问题

Webpack 5 移除了 Node.js 核心模块的自动 Polyfill(如 path-browserify、crypto-browserify、stream-browserify、processbuffer),需手动添加。

注意 node:fs、node:path、fs、net、tls、module 等报错,需要禁用掉。

npm install buffer process --save
module.exports = {configureWebpack: {resolve: {alias: {'@': resolve('src'),'node:fs': false,'node:path': false,fs: false,path: require.resolve('path-browserify'),crypto: require.resolve('crypto-browserify'),stream: require.resolve('stream-browserify'),buffer: require.resolve('buffer/'),},fallback: {fs: false,net: false,tls: false,module: false,path: require.resolve('path-browserify'),crypto: require.resolve('crypto-browserify'),stream: require.resolve('stream-browserify'),buffer: require.resolve('buffer/'),process: require.resolve('process/browser')}}}
};

3.​更新 Babel 配置

Webpack 5 需要 Babel 7+,确保 babel.config.js 使用最新预设:

module.exports = {presets: ['@vue/cli-plugin-babel/preset']
};

​四注意事项

  1. 依赖版本​:确保所有插件(如 html-webpack-pluginsvg-sprite-loader等)升级到支持 Webpack 5 的版本。
  2. 测试验证​:
    • 开发环境运行 npm run dev,检查热更新和代理是否正常。
    • 生产环境运行 npm run build,检查打包文件是否完整。
  3. 回滚方案​:备份 package.json 和 vue.config.js,升级失败时可快速还原。
http://www.dtcms.com/a/486344.html

相关文章:

  • 【MySQL】MySQL `JSON` 数据类型介绍
  • 通过hutool生成xml
  • vue.config.js 文件功能介绍,使用说明,对应完整示例演示
  • 无极分期网站临沂做网络优化的公司
  • Vue3的路由Router【7】
  • DOM 实例
  • 网站安全建设需求分析报告重庆有哪些科技骗子公司
  • Springboot AOP Aspect 拦截中 获取HttpServletResponse response
  • 【深度学习理论基础】什么是蒙特卡洛算法?有什么作用?
  • 网站建设商虎小程序就业网站建设
  • 从留言板开始做网站企业网站建设代理加盟
  • USB——UVC简介
  • cocosCreator导出Web-Mobile工程资源加载时间分析
  • SpringCloud系列(53)--SpringCloud Sleuth之zipkin的搭建与使用
  • 虚拟主机做视频网站可以吗网络规划的主要步骤
  • 【sqlite】xxx.db-journal是什么?
  • Ubuntu 搭建 Samba 文件共享服务器完全指南
  • ubuntu server版本安装vmtool
  • 《Redis库基础使用》
  • 网站转应用济南网站优化推广公司电话
  • 探索libsignal:为Signal提供强大加密保障的开源库
  • PIL与OpenCV双线性插值实现差异导致模型精度不够踩坑
  • 逆合成孔径雷达成像的MATLAB算法实现
  • 网站定制建设公司启信宝企业查询官网
  • html案例:制作一个图片水印生成器,防止复印件被滥用
  • 最新版谷歌浏览器集成知笺云阅读器控件介绍
  • 嘉定装饰装修网站企业网络营销青岛
  • break,continue练习题
  • 【Ubuntu 24.04.3 LTS(Noble Numbat)】移动硬盘数据提取操作手册
  • 网站开发需求分析与功能设计互联网线上推广是什么工作