记录一次webpack3升级到webpack4过程
升级之前也参考了一些网上的教程。借鉴之,进行的自己的升级。一些版本为什么设为那个版本号也是参考别人的结果。
整体是按照先升级npm run dev;在升级npm run build的顺序。
首先升级webpack,在package.json文件中将webpack版本号修改为4.8.1。
"webpack": "^4.8.1",
之后npm run dev,报错

解决的办法是
"webpack-dev-server": "^3.1.4",
继续npm run dev

很明显这是没有安装webpack-cli,安装webpack
"webpack-cli": "^3.3.7",
继续npm run dev


因为项目运用了DllReferencePlugin,升级之后需要重新生成dll文件。之后因为webpack4自身已经移除了uglifyjsplugin所以不能用了,改用下面插件进行代码压缩。
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
修复后,npm run dev

解决方案升级 html-webpack-plugin
"html-webpack-plugin": "^3.2.0",

webpack4 需要使用vue-loader 15.0.0 至少。所以升级vue-loader
"vue-loader": "^15.0.10",
注意vue-loader需要以插件的形式写在webpack配置项plugin里面。
const { VueLoaderPlugin } = require('vue-loader')
webpack:{
....,
plugins: [
new VueLoaderPlugin(),
.....
]
}
ok,npm run dev升级完毕。
注意这里版本号虽然,如上来写,但需要刘杰"^"这个符号的意义,意义是大版本号不变,中间版本号会自动下载最新的。还有一个符号"~",是只小版号变化。
然后升级npm run build。
webpack 4 不能再用extract-text-webpack-plugin,大多数教程推荐使用mini-css-extract-plugin,这个可以百度。用这个插件替换build环境的extract-text-webpack-plugin即可。
其他:升级过程中还出现的问题有

这是因为eslint需要升级,升级到eslint-loader
"eslint-loader": "^2.0.0",

这是因为使用了elment-ui,当升级到2.11.x时候会出现这个错误,这个错误最终没有解决, 只有降级element-ui版本。
记录一次webpack3升级到webpack4过程的更多相关文章
- webpack3升级为webpack4
写在前面的话:为什么要升级,因为公司目前的项目使用webpack3,但是因为是多页应用,入口估计有一百多个,开发模式下慢得不像话,修改一个文件需要十几秒才编译好,之前的解决方案是减少入口,但是要调试其 ...
- 基于vue-cli 将webpack3 升级到 webpack4 配置
升级webpack4前 先删除之前的webpack, babel-loader 下载 webpack npm i -D webpack@4 webpack-cli@3 webpack-dev- ...
- vue-webpack模板升级到webpack4
本文仅简单记录下基于vue-webpack模板升级到webpack4的过程 快速部署 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli # 全局安装 vue-cli $ npm i ...
- 面试官:说一下Synchronized底层实现,锁升级的具体过程?
面试官:说一下Synchronized底层实现,锁升级的具体过程? 这是我去年7,8月份面试的时候被问的一个面试题,说实话被问到这个问题还是很意外的,感觉这个东西没啥用啊,直到后面被问了一波new O ...
- Synchronized锁升级原理与过程深入剖析
Synchronized锁升级原理与过程深入剖析 前言 在上篇文章深入学习Synchronized各种使用方法当中我们仔细介绍了在各种情况下该如何使用synchronized关键字.因为在我们写的程序 ...
- 实验记录:Oracle redo logfile的resize过程
实验记录:Oracle redo logfile的resize过程. 实验环境:RHEL 6.4 + Oracle 11.2.0.3 单实例 文件系统 实验目的:本实验是修改redo logfile的 ...
- 懒人记录 Hadoop2.7.1 集群搭建过程
懒人记录 Hadoop2.7.1 集群搭建过程 2016-07-02 13:15:45 总结 除了配置hosts ,和免密码互连之外,先在一台机器上装好所有东西 配置好之后,拷贝虚拟机,配置hosts ...
- Linux CentOS6升级glibc库过程
CentOS6升级glibc库过程 hadoop无法加载native库,可能原因是 glibc库版本过低,需要升级. 第一:安装以下软件 yum -y install zlib zlib-devel ...
- 【Unity】近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享。
近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享. 1:Unity4.x 项目中3D模型其材质丢失,成为"白模"? 解决方式:手 ...
随机推荐
- HTTP中GET,POST和PUT的区别
一.HTTP中定义了以下几种请求方法: 1.GET:2.POST:3.PUT:4.DELETE;5.HEAD:6.TRACE:7.OPTIONS: 二.各个方法介绍: 1.GET方法:对这个资源的查操 ...
- vue项目中图片预览旋转功能
最近项目中需要在图片预览时,可以旋转图片预览,在网上找了下,发现有一款功能强大的图片组件:viewerjs. git-hup: https://github.com/fengyuanchen/view ...
- 【转】Delphi货币类型转中文大写金额
unit TU2.Helper.Currency; interface ): string; ): string; implementation uses System.SysUtils, Syste ...
- 【3】Git命令
个人推荐的Git知识学习网站:https://git-scm.com . git常用操作图 init -> add -> commit -> remote -> push 初始 ...
- dedeampz 套件关于PHP开启curl方法
php开启curl方法主要用到三个文件libeay32.dll,php_curl.dll,ssleay32.dll 打开dede的安装目录,更改对应版本PHP中的php.ini文件,在 ; exten ...
- Azkaban无法启动错误Error: Could not find or load main class 12321
1 错误日志 Using Hadoop from /mnt/software/hadoop-2.6.0-cdh5.16.1 bin/internal/../.. /mnt/software/jdk1. ...
- Linux Centos虚拟机扩容
Linux Centos虚拟机扩容(/dev/mapper/centos-root) 1:.首先查看我们的根分区大小是多少 df -h 文件系统 类型 容量 已用 可用 已用% 挂载点``/dev/m ...
- 集合篇-----ArrayList与LinkedList之间的那些小事
各自特性: ArrayList : 是一由连续的内存块组成的数组,范围大小可变的,当不够时增加为原来1.5倍大小,数组. :调用trimToSize方法,使得存储区域的大小调整为当前元素数量所需要的 ...
- class文件与dex文件解析
关于Android的热修复与插件化技术在如今基本上已经成为了“时髦技术”的标配了,或者说用来进行“炫技”的一种方式,毕境如今Android已经发展得非常之成熟了,基本上APP用的到东东都差不多,除了业 ...
- PAT乙级1041
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805281567916032 题解 简单的信息录入和查询而已. ...