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

vue cli 3 升级到 vue cli 4 方法步骤及升级点总结「建议收藏」vuecli3升级到vuecli4指南vuecli3升级到vuecli4方法步骤及升级点总结vue-cli3升级vue-cli4官方英文升级文档,中文滞后一.首先,在全局安装最新的VueCLI:npminstall-g@vue/cli#ORyarnglobaladd@vue/cli检查安装的版本vue-V#输出:@vue/cli4.x.x说明@vue/cli4安装成功(vuecli3的版本会输出3.x.x)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

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

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

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

npm install -g @vue/cli
# OR
yarn global add @vue/cli

Jetbrains全家桶1年46,售后保障稳定

检查安装的版本

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,解决 。

二.在项目根目录下执行

vue upgrade

然后出现
在这里插入图片描述

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

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

1.文件 babel.config.js

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

原来的

module.exports = { 
   
  presets: [
    '@vue/app', // 这行
    [
      '@babel/preset-env',
      { 
   
        useBuiltIns: 'entry'
      }
    ]
  ]
}

升级后的

module.exports = { 
   
  presets: [
    '@vue/cli-plugin-babel/preset', // 这行
    [
      '@babel/preset-env',
      { 
   
        useBuiltIns: 'entry'
      }
    ]
  ]
}

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

主要是依赖升级

原来的

{ 
   
  "@vue/cli-plugin-babel": "^3.11.0",
  "@vue/cli-plugin-eslint": "^3.11.0",
  "@vue/cli-service": "^3.11.0"
}

升级后的

{ 
   
  "@vue/cli-plugin-babel": "^4.0.5",
  "@vue/cli-plugin-eslint": "^4.0.5",
  "@vue/cli-service": "^4.0.5"
}

四.然后启动项目

npm run serve

然后报下面的错

在这里插入图片描述

1.第一个错(警告)

 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 就好了

执行下面命令即可

npm i sass-loader@8.0.0 -D

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

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

于是安装一下

npm i core-js

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

main.js 代码中

import '@babel/polyfill'

隐藏这个代码

重启好了

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

npm i babel-polyfill

main.js 代码中 改为

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.net/206566.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月7日 下午8:22
下一篇 2025年8月7日 下午9:01


相关推荐

  • 怪盗基德三角滑翔翼设计图_第一代怪盗基德

    怪盗基德三角滑翔翼设计图_第一代怪盗基德最长上神子序列(nlogn)原题链接怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵的钻石,不料却被柯南小朋友识破了伪装,而他的滑翔翼的动力装置也被柯南踢出的足球破坏了。不得已,怪盗基德只能操作受损的滑翔翼逃脱。假设城市中一共有N幢建筑排成一条线,每幢建筑的高度各不相同。初始时,怪盗基德可以在任何一幢建筑的顶端。他可以选择一个

    2022年8月8日
    11
  • spring框架aop的理解_通俗易懂理解部分分式展开法

    spring框架aop的理解_通俗易懂理解部分分式展开法源地址:http://www.verydemo.com/demo_c143_i20837.html1.我所知道的aop  初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的

    2022年8月11日
    7
  • OpenCV人脸识别的原理 完整版代码

    OpenCV人脸识别的原理 完整版代码http://blog.csdn.net/yanming901012/article/details/8606183本程序首先利用从摄像头检测到的人脸图片,先进行直方图均衡化 并缩放到92*112的图片大小,然后根据train.txt的采集到的人脸模版 进行匹配识别(最好是在统一光照下,采集不同角度的人脸图片各一张) 注意:影响的极大因素在于光照,模版若与采集的图像光照不一样,识别率很低。…

    2022年5月2日
    51
  • es与数据库的同步方案

    es与数据库的同步方案一、双写模式我们采取MySQL作为主要的数据存储,利用MySQL的事务特性维护数据一致性,使用ElasticSearch进行数据汇集和查询,此时es与数据库的同步方案就尤为重要。保证es与数据库的同步方案:1、首先添加商品入数据库,添加商品成功后,商品入ES,若入ES失败,将失败的商品ID放入redis的缓存队列(或MQ),且失败的商品ID入log文件(若出现redis挂掉,可从日志中取异…

    2022年5月18日
    38
  • 什么是跨域跨域解决方法_500错误原因解决方法

    什么是跨域跨域解决方法_500错误原因解决方法一、为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协…

    2022年4月18日
    491

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号