Webpack3.x升级至 4.x 小记
近期项目部署遇到点问题,需要升级webpack版本,特此整理一小记,记录升级过程中的依赖包及报错处理。
本次升级的依赖包及对应版本对照表:
| npm 包 | 当前版本 | 升级版本 | S/D |
|---|---|---|---|
| vue | ^2.5.18 | ^2.6.14 | -S |
| element-ui | ^2.4.11 | ^2.15.8 (为了解决el-date-picker 告警问题) | -S |
| css-loader | ^0.26.4 | ^5.2.7 | -D |
| file-loader | ^1.1.5 | ^6.2.0 | -D |
| html-webpack-plugin | ^2.30.1 | ^4.5.0 | -D |
| less | ^3.13.1 | ^4.1.3 | -D |
| less-loader | ^5.0.0 | ^7.3.0 | -D |
| style-loader | ^0.21.0 | ^2.0.0 | -D |
| url-loader | ^1.1.2 | ^4.1.1 | -D |
| vue-loader | ^12.2.2 | ^15.9.8 | -D |
| vue-template-compiler | ^2.4.2 | ^2.6.14 | -D |
| webpack | ^3.12.0 | ^4.41.5 | -D |
| webpack-cli | --- | ^3.3.10 | -D |
| webpack-dev-server | ^2.9.2 | ^3.10.1 | -D |
webpack-cli:webpack4.x中,webpack-cli已经从webpack中分离出来了。所以需要单独下载
两种升级方法:
npm update package@version -D (需要区分是生产依赖还是开发依赖)
将要下载的版本写进package.json文件中,删除原来的 node_modules, 在执行以下命令即可
npm install rimraf -g
rimraf node_modules
npm cache clean --force
npm install
报错信息整理,
① Error: Cannot find module 'webpack-cli/bin/config-yargs'
原因:是webpack,webpack-cli,webpack-dev-server之间的版本问题。
解决:webpack4.x中,webpack-cli已经从webpack中分离出来。所以需要单独下载
// 如果已经按照上述表格更新依赖,此处无须再次安装
npm install webpack@4.41.5 webpack-cli@3.3.10 webpack-dev-server@3.10.1 -D
②TypeError: Cannot read property 'tap' of undefined
原因:html-webpack-plugin插件版本安装不兼容
解决: 安装 html-webpack-plugin 版本为4.5.0
③ TypeError:Cannot read property ‘vue’ of undefined
④ TypeError: VueLoaderPlugin is not a constructor
原因:vue-loader 和 vue-template-compiler 插件版本安装不兼容
解决:npm install vue-loader@15.9.8 vue-template-compiler@2.6.14 -D
webpack.config.js中使用插件:
const { VueLoaderPlugin } = require('vue-loader')
// 或者
const VueLoaderPlugin = require('vue-loader/lib/plugin');
// ...
plugins: [
new VueLoaderPlugin()
]
⑤ TypeError: this.getOptions is not a function
经过排查发现是由于style-loader的版本不兼容导致的,webpack4 可用的 css 文件的 loader 对应最高版本如下:
"css-loader": "^5.2.7",
"style-loader": "^2.0.0",
"less-loader": "^7.3.0",
⑥ [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "placement"
项目中使用 element-ui ,依赖升级后,el-date-picker 出现以下告警信息, 将element-ui 升级至2.15.8
npm uninstall element-ui
npm install element-ui@2.15.8 -s

Webpack3.x升级至 4.x 小记的更多相关文章
- samsung Galaxy s2(GT i9100g )刷机升级至4.4小记
从昨天上午到现在,大部分时间都是在将i9100g更新到4.4.虽然中途也做了一些别的事情,但是更新过程还是走了一点弯路,比开始预想的稍微慢了一点,现在将完整的更新步骤分享给大家,以帮助后来的同学.升级 ...
- Debian Jessie升级至Stretch小记
昨天Debian Stretch正式发布.为了尝新,昨天晚上便从Jessie升到了Stretch.结果,早上起来发现系统已无法进入X视窗环境,且NVIDIA的官方驱动无法成功编译和安装.看来,每次系统 ...
- [原]Paste.deploy 与 WSGI, keystone 小记
Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...
- mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法!
mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法! 修改mysql5.7的配置文件即可解决,方法如下: linux版:找到mysql的安装路径进入默认的为/usr/shar ...
- .NET跨平台之旅:将示例站点从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0
终于将“.NET跨平台之旅”的示例站点 about.cnblogs.com 从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0 ,经历了不少周折,在这篇博文中记录一下. 从 AS ...
- MySql 小记
MySql 简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...
- Git小记
Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...
- 广州PostgreSQL用户会技术交流会小记 2015-9-19
广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...
- 东哥读书小记 之 《MacTalk人生元编程》
一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...
- Paypal支付小记
Paypal支付小记 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...
随机推荐
- Ciphey在windows下的安装问题('gbk' codec can't decode byte 0xbf in position 695)
---- 这玩意儿安装查了别人的博客,没搞明白他们怎么安装的- -,我太菜了,看不懂.还是去github搜了下,才解决. ---- 首先是ciphey这个包的安装(一定要的):python3 -m p ...
- C# 调用 qrencode的动态库
自己根据qrencode的源码导了一个dll动态库,见: https://www.cnblogs.com/HelloQLQ/p/16364825.html 自己希望能用C#语言调用以下. 首先构建需要 ...
- django中的多表关联
一.三种关联情况 二.ORM的正向操作和反向操作 1.正向操作: 一个模型中定义了一个外键,通过该模型对该外键操作的操作叫做正向操作. 2.反向操作: 被外键所关联的模型,通过该模型对外键所在模型的操 ...
- 获得centos7网络yum源
获得centos73网络yum源 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 网易 wget -O /etc/yum.repos.d ...
- css摩天轮
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 随机化 base64 加密
随机化 base64 加密 项目原址:Jeefy / jtim-enc · GitLab 技术 采用双重随机化技术. 第一重随机化是利用固定的随机种子改变 base64 解码的映射数组. 第二重随机化 ...
- C#窗体内控件大小随窗体等比例变化
一.首先定义全局变量 1 private float X;//当前窗体的宽度 2 private float Y;//当前窗体的高度 3 private bool IsFirst = true; 二. ...
- C#.NET CORE .NET8连接SQL SERVER 2008 R2 报:证书链是由不受信任的颁发机构颁发的
一.C#.NET CORE .NET8连接SQL SERVER 2008 R2 报:证书链是由不受信任的颁发机构颁发的 报错内容: A connection was successfully est ...
- EF EntityFramework 强制从数据库中取数据,而不是上下文
场景:插入了一条数据到数据库,这条数据会有其它程序修改,接着程序想获取最新数据.此时不加额外处理,取的仍是旧的. t_task ta = new t_task(); ta.item_id = item ...
- FlashDuty Changelog 2023-12-18 | 值班管理、服务日历、自定义操作和邮件集成
FlashDuty:一站式告警响应平台,前往此地址免费体验! 值班管理 UI 交互优化 [个人日程]从头像下拉菜单调整到值班列表页面,快速查看个人值班日程 [值班列表]支持原地预览最近一周值班情况,包 ...