背景

  公司的项目是vue项目,环境是node@8x版本的,最近我创建react hook的项目,发现至少需要node14才支持,打开官网才发现node都已经到16版本了。失策啊,失策。于是直接升级到最高版本。结果项目直接跑不起来了,看了下日志问题挺多的。我折腾了小1天才弄好。里面坑不少,最关键的是网上好多人的帖子太操蛋了,太水了。在这立个贴,和大家分享一下,如果遇到一样的问题,应该会有很大的帮助。

  对了,我升级的是vue2.0的项目,而我vue3.0的项目完全不受影响。原因嘛,我大致看了下package.json文件,cli都是最新的,而且没有node-sass。我想可能是内置了。所以在这再提醒一下,老版本vue-cli创建的项目,应该会遇到和我一样的问题。

问题和解决方法汇总

  1、node-sass 升级,直接导致项目运行失败

  2、如果用vue-cli创建的项目需要升级,webpack支持到5.0版本,自己搭建的得自己升级了

  3、polyfill 弃用了,使用 core-js   regenerator-runtime

  4、

具体操作

  1、首先安装node最新版本,截至我发帖时间,最新稳定版本为 node16.13.1,

  2、更新node-sass,每个版本的node,都会有对应版本的node-sass。而且好像是14之后的版本更新很大,直接不兼容了,所以会报错。这里我们先去下载node-sass的版本包  点这里下载  ,下载第一个文件(下边有贴图)。下载成功之后,将这个包,放到你的账户下,具体路径是  C:\Users\你的用户名\AppData\Roaming\npm-cache\node-sass  , 然后创建一个名为 6.0.1  的文件夹,然后把刚下载的包,复制到这个文件夹中。我下面都贴图了。这样能保证你安装node-sass依赖的时候不会一直报错。

  3、安装node-sass@6.0.1,npm i --save node-sass@6.0.1   如果还是报错,检查一下上述几步是否有漏的,正常不会报错了。

  4、升级vue-cli,以下是正常的升级流程。先试一下,可能会有人更新失败,再说一个粗暴点的方法,用vue-cli直接创建一个vue2.0的新项目,将老项目node-modules删除,将新项目的node-modules复制过来,然后新项目的package.json的  devDependencies  部分,一条条的替换老项目的,一共三四条。

   vue -V             检查当前vue-cli的版本, 如果报错 指令不存在 或者没权限啥的,  在powershell里面执行  start cmd 直接打开cmd输入这些指令           
npm uninstall vue-cli -g 卸载老版本
npm install -g @vue/cli 全局安装新版本
vue -V             检查版本号,我的是4.5.15
vue upgrade          升级项目中脚手架相关的包

   5、然后保险起见,还是删除整个node-dules,删除package-lock.json,都清空。

   6、删除整个node-dules,看一下main.js和package.json 有没有使用 @babel/polyfill 这个依赖,这个包现在已经废弃了,换成了  core-js   regenerator-runtime 这两个包,装一下这两个依赖,然后修改main.js入口文件,去掉废弃的,增加新的2个,下面有代码贴图。

  npm uninstall @babel/polyfill  // 卸载@babel/polyfill
  npm install core-js
  npm install regenerator-runtime

  7、重新执行 npm install ,安装所有依赖,重新启动项目即可

 

总结

  东西其实不多,主要卡在node-sass安装一直失败,手动添加了版本包。在一个就是新版本的cli都用的 core-js,需要改项目代码,否则就会一堆报错,提示缺各种依赖。这两块浪费了我大量的时间,网上一堆没用的文章,各种粘贴复制、转载,真的想骂娘。

  最后,建议大家搜索的东西的时候加上  -(CSDN) -(脚本之家)     哈哈,把垃圾信息都屏蔽掉。基本剩下的都是博客园、简书啥的,

前端项目 node8升级到node16,代码升级汇总的更多相关文章

  1. VC6完整项目代码升级到VS2010

    VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com

  2. 前端项目模块化的实践2:使用 Webpack 打包基础设施代码

    以下是关于前端项目模块化的实践,包含以下内容: 搭建 NPM 私有仓库管理源码及依赖: 使用 Webpack 打包基础设施代码: 使用 TypeScript 编写可靠类库 使用 TypeScript ...

  3. 基于node的前端项目代码包发布至nexus

    目录 目录... 3 1. 前言... 1 2. 配置... 1 2.1. 配置angular.json文件... 1 2.2. 配置package.json文件... 1 2.3. 复制git地址. ...

  4. H5+ 重写在线升级版本比较代码

    重写h5+在线升级版本比较代码 hello h5+版本在线升级提供了如下的版本比较方法,逻辑比较繁琐,相关判断多余,非常不宜读. 先判断新旧版本有无, 接着分割为数组比较数组项大小,而且还只取了前四项 ...

  5. 手把手教你用SonarQube+Jenkins搭建--前端项目--代码质量管理平台 (Window系统)

    前言 网上教程大多介绍的是Linux系统下SonarQube+Jenkins如何使用,这是因为这两款软件一般都是部署在服务器上,而大多数服务器,采用的都是Linux系统.大多数服务器用Linux的原因 ...

  6. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...

  7. 基于Gulp + Browserify构建es6环境下的自动化前端项目

    随着React.Angular2.Redux等前沿的前端框架越来越流行,使用webpack.gulp等工具构建前端自动化项目也随之变得越来越重要.鉴于目前业界普遍更流行使用webpack来构建es6( ...

  8. erp前端项目总结

    目录 一.项目目录(vue-cli2) 二.开发实践 (一) 权限 (二) 各组件间传递数据 (四) 路由 (七) 组织部门业务员三级联动 (八) 优化性能,手动绑定下拉框数据 (九) 验证 (十) ...

  9. 对于jenkins上前端项目 npm 或 yarn 打包 及 部署 使用

    1.npm和yarn镜像源地址 npmMirror ~~~~~ https://skimdb.npmjs.com/registry/ edunpm ~~~~~~ http://registry.enp ...

随机推荐

  1. 《Scala编程》课程作业

    第一题.百元喝酒 作业要求:每瓶啤酒2元,3个空酒瓶或者5个瓶盖可换1瓶啤酒.100元最多可喝多少瓶啤酒?(不允许借啤酒) 思路:利用递归算法,一次性买完,然后递归算出瓶盖和空瓶能换的啤酒数 /** ...

  2. Spark基础:(五)Spark编程进阶

    共享变量 (1)累加器:是用来对信息进行聚合的,同时也是Spark中提供的一种分布式的变量机制,其原理类似于mapreduce,即分布式的改变,然后聚合这些改变.累加器的一个常见用途是在调试时对作业执 ...

  3. keil 报错 expected an identifier

    该报错是因为命名重复,可能是因为你加的头文件里面的命名和原程序中的有重复,所以产生了错误.

  4. 链式栈——Java实现

    1 package struct; 2 3 //接口 4 interface ILinkStack{ 5 //栈中元素个数(栈大小) 6 int size(); 7 //取栈顶元素 8 Object ...

  5. redis入门到精通系列(三):key的通用操作和redis内部db的通用操作

    五种数据类型都用到了key,key本身是一种字符串,通过key可以获取redis中保存的对象.这一篇博客就将介绍key的通用操作. (一)key基本操作 删除key del key key是否存在 e ...

  6. Linux shell实现每天定时备份mysql数据库

    每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求: 1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3 ...

  7. Thymeleaf标准表达式

    Thymeleaf的官网为: http://www.thymeleaf.org/ 一.变量表达式${-} 使用${-}括起来的表达式,称为变量表达式.该表达式的内容会显示在HTML标签体文本处. 该表 ...

  8. 【Services】【Web】【apr】安装apr

    1. 基础: 1.1 描述:apr全称Apache Portable Runtime,常用于与ssl相关的环境支持,比如openssl,httpd,nginx,tomcat 1.2 链接: 官方网站: ...

  9. Web系统与自控系统数据通讯架构 之 OPC DA DataChangeEventHandler 非热点数据更新策略 ,

    在使用OPC 采集 工控数据时,在DA模式下.采集数据通常用到 DataChangeEventHandler这个事件.但有时会遇到一些问题,就是当数据不变化时时不会触发 DataChange 这个事件 ...

  10. 使用plantuml,业务交接就是这么简单

    使用plantuml,业务交接就是这么简单 你好,我是轩脉刃. 最近交接了一个业务,原本还是有挺复杂的业务逻辑的,但发现交接过来的项目大有文章,在项目代码中有一个docs文件夹,里面躺着若干个 pum ...