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 ...
随机推荐
- MySQL查询某个字段含有字母数字的值
1.正则表达式(REGEXP) 查询MySQL表中某个字段含有字母和数字的值,可以使用正则表达式(REGEXP)来匹配这样的模式.在MySQL中,正则表达式是一个强大的工具,可以用来搜索和匹配字符串中 ...
- 一个免费、时尚、强大的 Windows GitHub 客户端
前言 今天大姚给大家分享一个.NET开源(MIT License).免费.时尚.功能强大的 Windows GitHub 客户端:FluentHub. 工具功能 多任务标签页. 上下文菜单扩展. 对问 ...
- MindSponge分子动力学模拟——多路径分子模拟(2024.05)
技术背景 在前面的MindSponge教程系列博客中,我们已经介绍过MindSponge分子动力学模拟框架的基础功能使用方法,例如MindSponge的安装与使用.定义分子系统.计算单点能和迭代器等等 ...
- H264 H265 分析小工具
1.在调试 H264 H265 编码的流数据的时候,有时候需要打印没有nalu的类型和数量,自己写了一个小工具 使用方式: p.p1 { margin: 0; font: 22px Menlo; co ...
- Python多线程、多进程编程
1 简介 参考:https://www.bilibili.com/video/BV1bK411A7tV?spm_id_from=333.999.0.0 python线程池ThreadPoolExecu ...
- GeoGebra作圆的切线
参考文档:<GeoGebra入门教程>唐家军 1. 目的 使用GeoGebra作出过一点的圆的切线. 2. 构造过程 文档种的描述如下: 按照上述构造过程,在输入条形框中依次输入上面的指令 ...
- 抖音abogus逆向分析
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6 ...
- vuex做购物车功能
先创建一个cart组件 <template> <div> <ListItem></ListItem> </div> </templat ...
- AnkhSVN For Visual Studio 2022
AnkhSVN For VS2022 AnkhSVN 2.9.87 - Visual Studio 2022 support https://github.com/AmpScm/AnkhSVN/rel ...
- spring boot jpa 进行通用多条件动态查询和更新 接口
原因: jpa 没有类似于mybatis的那种 拼接sql的方式 想动态更新 需要使用 CriteriaUpdate的方式 去一直拼接,其实大多数场景只要传入一个非空实体类,去动态拼接sql 1.定义 ...