解决npm更换nodejs后不能用的问题
引言:
前几天由于新的前端项目升级成了Vue3,本机的nodejs版本太老,索性一起升级了,结果升级之后,npm install报错,提示nvm和nodejs版本不匹配。

下面把解决方法记录如下:
1、卸载nodejs

2、修改环境变量
“系统”→“高级系统设置”→“环境变量”,
把系统变量“NVM HOME”和“NVM SYMLINK”删了,还有“PATH”里的“%NVM HOME%”和“%NVM SYMLINK%”
3、删除以下目录(建议用Everything搜索)
C:\Program Files\Nodejs
C:\User\用户名\【.npmrc】文件(.node_repl_history如果存在也删除,没有就忽略)
C:\Users\用户名\AppData\Roaming\npm
C:\Users\用户名\AppData\Roaming\npm-cache
C:\Users\用户名\AppData\Local\npm-cache
4、cmd执行以下命令,看是否卸载干净
nvm -v
node -v

5、重新安装nvm,下载地址:https://github.com/coreybutler/nvm-windows/releases
直接下一步安装即可,安装好后会自动增加环境变量
6、找到nvm目录,配置setting.txt

添加如下:
# 配置node镜像:
node_mirror: https://npmmirror.com/mirrors/node/
# 配置npm镜像:
npm_mirror: https://npmmirror.com/mirrors/npm/

7、使用nvm安装nodejs
先看下有哪些版本
nvm list available

使用命令安装
nvm install 18.20.3
nvm install 14.21.3
8、此时还没有指定使用哪个,所以需要执行以下命令:
nvm use 18.20.3
9、再看下版本号
npm -v
node -v

10、再试试,问题解决。
npm install

后记:
Node.js 的发展史
起源(2009 年)
Node.js 由 Ryan Dahl 在 2009 年创建。当时,Web 应用程序对高性能 I/O 处理的需求日益增长,但传统的服务器端技术在处理大量并发连接时效率较低。Dahl 受到事件驱动、非阻塞 I/O 模型的启发,结合 Google 的 V8 JavaScript 引擎,开发出了 Node.js。这使得 JavaScript 可以在服务器端运行,打破了 JavaScript 只能在浏览器中执行的限制。
早期发展(2009 - 2011 年)
2009 年 5 月,Node.js 发布了第一个版本。同年 11 月,npm(Node Package Manager)诞生,这是一个用于管理和共享 Node.js 模块的工具。npm 的出现极大地促进了 Node.js 生态系统的发展,开发者可以方便地分享和复用代码。
社区壮大(2011 - 2014 年)
Node.js 逐渐获得了开发者社区的广泛关注和支持。越来越多的开发者开始使用 Node.js 构建服务器端应用、实时应用(如聊天应用、在线游戏等)。许多知名公司也开始采用 Node.js,如 PayPal,它在 2013 年将部分后端服务迁移到了 Node.js,大幅提高了性能和开发效率。
分岔与合并(2014 - 2015 年)
2014 年,由于项目发展方向的分歧,Node.js 核心开发者 Isaac Schlueter 发起了 io.js 项目。io.js 基于 Node.js,采用了最新的 V8 引擎,提供了更多的新特性。这导致了社区的分裂,但也促使了 Node.js 的发展。2015 年,Node.js 和 io.js 合并,成立了 Node.js 基金会,进一步推动了项目的发展。
长期支持(LTS)版本发布(2015 年至今)
2015 年 10 月,Node.js 发布了长期支持(LTS)版本策略,为企业用户提供了更稳定的版本选择。随着时间的推移,Node.js 不断更新和完善,支持更多的特性和功能,如异步 I/O、模块化编程等,其生态系统也变得更加丰富和成熟。
Node.js 对前端开发的影响
构建工具
Node.js 催生了许多强大的前端构建工具,如 Grunt、Gulp 和 Webpack。这些工具可以自动化处理前端开发中的各种任务,如代码压缩、合并、编译(如将 Sass 或 Less 编译为 CSS)、图片优化等。例如,Webpack 可以将多个模块打包成一个或多个文件,减少浏览器的请求次数,提高页面加载速度。
包管理
npm 成为了前端开发中最常用的包管理工具之一。开发者可以通过 npm 安装和管理各种前端库和框架,如 React、Vue.js、Angular 等。同时,npm 还提供了版本管理和依赖管理的功能,方便开发者管理项目的依赖关系。
前端工程化
Node.js 推动了前端工程化的发展,使得前端开发从传统的手工编写代码和部署,转变为更加自动化、规范化的开发流程。开发者可以使用 Node.js 搭建本地开发服务器,实现热更新、代理等功能,提高开发效率。此外,Node.js 还支持使用测试框架(如 Jest、Mocha)进行单元测试和集成测试,保证代码质量。
Node.js 对后端开发的影响
高性能服务器
Node.js 采用了事件驱动、非阻塞 I/O 模型,使得它在处理大量并发连接时具有很高的性能。这使得 Node.js 非常适合构建实时应用、高并发的 Web 服务器和 API 服务。例如,许多实时聊天应用、在线游戏服务器和即时通讯系统都采用了 Node.js。
全栈开发
由于 Node.js 使用 JavaScript 作为编程语言,前端开发者可以使用相同的语言进行后端开发,实现全栈开发。这降低了学习成本,提高了开发效率。开发者可以使用同一种语言处理前后端逻辑,共享代码和工具,使得开发过程更加流畅。
微服务架构
Node.js 的轻量级和模块化特性使得它非常适合构建微服务架构。开发者可以使用 Node.js 构建多个独立的微服务,每个微服务专注于一个特定的业务功能。这些微服务可以独立开发、部署和扩展,提高了系统的可维护性和灵活性。例如,许多互联网公司采用 Node.js 构建微服务架构的后端系统,实现了快速迭代和高效开发。
浙公网安备 33010602011771号