前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue cli 3 升级到 vue cli 4 方法步骤及升级点总结「建议收藏」

vue cli 3 升级到 vue cli 4 方法步骤及升级点总结「建议收藏」

作者头像
全栈程序员站长
发布2022-11-01 15:15:26
2.8K0
发布2022-11-01 15:15:26
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

vue cli 3 升级到 vue cli 4 方法步骤及升级点总结

官方升级英文文档中文文档相对滞后。

简介:vue cli 4 官方已经更新有一段时间了,现在是4.0.5 版本,看了官方文档大概有二十几点的更新,还是干货满满呀,值得升级一下,下面是升级步骤。

一.首先,在全局安装最新的 Vue CLI:

代码语言:javascript
复制
npm install -g @vue/cli
# OR
yarn global add @vue/cli

检查安装的版本

代码语言:javascript
复制
vue -V  # 输出:@vue/cli 4.x.x  说明@vue/cli 4安装成功( vue cli 3的版本会输出 3.x.x )

踩坑记录

npm install -g @vue/cli 执行成功,但是执行 vue -V 输出的还是3.5.6(我以前安装的版本),

于是又重新执行 npm install -g @vue/cli,显示成功,执行 vue -V 输出的还是3.5.6

一脸懵逼 ,然后重启电脑,再执行vue -V 输出 @vue/cli 4.0.5,解决 。

二.在项目根目录下执行

代码语言:javascript
复制
vue upgrade

然后出现

在这里插入图片描述
在这里插入图片描述

提示 继续升级这些插件吗? 输入 Y 即可.

三.等步骤二 执行完会发现主要有 2 个文件被修改

1.文件 babel.config.js

主要是 babel 的预设由@vue/app 改成了@vue/cli-plugin-babel/preset

原来的

代码语言:javascript
复制
module.exports = { 
   
  presets: [
    '@vue/app', // 这行
    [
      '@babel/preset-env',
      { 
   
        useBuiltIns: 'entry'
      }
    ]
  ]
}

升级后的

代码语言:javascript
复制
module.exports = { 
   
  presets: [
    '@vue/cli-plugin-babel/preset', // 这行
    [
      '@babel/preset-env',
      { 
   
        useBuiltIns: 'entry'
      }
    ]
  ]
}

2.文件 package.json (package-lock.json 也会更改)

主要是依赖升级

原来的

代码语言:javascript
复制
{ 
   
  "@vue/cli-plugin-babel": "^3.11.0",
  "@vue/cli-plugin-eslint": "^3.11.0",
  "@vue/cli-service": "^3.11.0"
}

升级后的

代码语言:javascript
复制
{ 
   
  "@vue/cli-plugin-babel": "^4.0.5",
  "@vue/cli-plugin-eslint": "^4.0.5",
  "@vue/cli-service": "^4.0.5"
}

四.然后启动项目

代码语言:javascript
复制
npm run serve

然后报下面的错

在这里插入图片描述
在这里插入图片描述

1.第一个错(警告)

代码语言:javascript
复制
 WARN  A new version of sass-loader is available. Please upgrade for best experience.

这行是 vue cli 4 升级了自己的依赖 sass-loader 导致的

它把 sass-loader^7.x.x 的版本升级到了 ^8.0.0,而我项目中使用的是^7.1.0

所以升级一下自己项目的 sass-loader 就好了

执行下面命令即可

代码语言:javascript
复制
npm i sass-loader@8.0.0 -D

2.然后第二个错说没有安装core-js

vue cli 4core-js^2.x.x 的版本升级到了 ^3.x.x

于是安装一下

代码语言:javascript
复制
npm i core-js

然后重启项目还是不行,看了下官方文档和 babel 有关

main.js 代码中

代码语言:javascript
复制
import '@babel/polyfill'

隐藏这个代码

重启好了

然后把 @babel/polyfill 换成 babel-polyfill 即可

代码语言:javascript
复制
npm i babel-polyfill

main.js 代码中 改为

代码语言:javascript
复制
import 'babel-polyfill'

五.vue cli 4 主要升级点总结

1."@vue/cli-plugin-babel", "@vue/cli-plugin-eslint", "@vue/cli-service"v3 的版本升级到了 v4

2.sass-loaderv7 的版本升级到了 v8

3.core-jsv2 的版本升级到了 v3

4.webpack-chainv4 的版本升级到了 v6

5.css-loaderv1 的版本升级到了 v3

6.url-loaderv1 的版本升级到了 v2

7.file-loaderv3 的版本升级到了 v4

8.copy-webpack-pluginv4 的版本升级到了 v5

9.terser-webpack-pluginv1 的版本升级到了 v2

10.@vue/cli-plugin-pwav3 的版本升级到了 v4

11.新增插件 vue add vuex vue add router

12.pug-plain已重命名为pug-plain-loader

13.默认目录结构已更改

src/store.js 改为 src/store/index.js

src/router.js 改为 src/router/index.js

14.由于兼容性原因,仍支持 router&routerHistoryMode 选项 preset.json

但是现在建议使用它来 plugins: { '@vue/cli-plugin-router': { historyMode: true } }

获得更好的一致性

15.api.hasPlugin('vue-router')不再受支持,现在 api.hasPlugin('router')

16.lintOnSave 选项的默认值(未指定时)从 true 更改为 default

17.废弃vue-cli-service test:e2e

18.@vue/cli-plugin-e2e-nightwatch Nightwatch.js已从0.9升级到1.x

19.@vue/cli-plugin-unit-mocha 升级到Mocha 6

20.@vue/cli-plugin-unit-jest jestv23 升级到v24

21.@vue/cli-plugin-typescript 更好的ts(x)支持 ,胜过js(x)

参考链接

vue cli 4 官方英文升级文档

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/206566.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue cli 3 升级到 vue cli 4 方法步骤及升级点总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档