Node.js配置
NVM: Node.js版本控制
安装nvm&node.js
推荐方法:使用 NVM(Node Version Manager)
这是最干净、最方便的方法,可以管理多个 Node.js 版本。
安装 NVM-Windows:先卸载当前 Node.js v14(老版本),用图吧工具箱-Geek Uninstaller
下载安装 NVM-Windows
访问 GitHub 下载:https://github.com/coreybutler/nvm-windows/releases 下载
nvm-setup.exe并安装很重要-安装过程见本笔记:安装过程
使用 NVM 安装 Node.js v22:以管理员身份运行 PowerShell 或 CMD
# 查看可用版本 nvm list available # 安装 Node.js v22 nvm安装在d盘,node.js也会默认安装到它的d盘目录 nvm install 22.11.0 # 或直接 nvm install 22 # 使用 v22 nvm use 22.11.0 # 设置默认版本 nvm on # 查看安装位置 where node where npm
到这都没问题的话,就不用看下面的内容了。。。
nvm的环境变量配置
我遇到的问题:我的系统变量中,
NVM_HOME的值是D:\Program\Environment\nvm我的NVM_SYMLINK值是C:\nvm4w\nodejs这个目录是什么?我的nodejs v22.21.1明明下载到d盘的nvm目录下了,请给我介绍这些东西,然后告诉我应该怎么办现在
问题简介
①内容介绍
NVM_HOME:
- 作用 :指定nvm的安装目录
- 你的配置 :
D:\Program\Environment\nvm(正确,这是nvm实际安装的位置) - 说明 :这个目录下存放着nvm.exe可执行文件和所有已安装的Node.js版本
NVM_SYMLINK:
- 作用 :创建一个 符号链接目录 ,nvm通过这个目录来「切换」不同的Node.js版本
- 你的配置 :
C:\nvm4w\nodejs(这是nvm的默认符号链接目录)
- 说明 :
- 符号链接是一个「快捷方式」,指向当前正在使用的Node.js版本
- 当你执行 nvm use 22.21.1 时,nvm会将 NVM_SYMLINK 目录指向 NVM_HOME\v22.21.1
- 系统通过 Path 变量中的 %NVM_SYMLINK% 找到Node.js和npm命令
②问题分析
你的Node.js v22.21.1实际安装在 D:\Program\Environment\nvm\v22.21.1 目录下,但符号链接目录配置在 C:\nvm4w\nodejs 。这可能导致:
- 符号链接创建失败(跨盘符号链接可能需要管理员权限)
- 系统无法通过符号链接找到Node.js命令
③解决方法
步骤1:验证Node.js安装目录 首先确认你的Node.js版本确实存在:
- 打开文件资源管理器,检查 D:\Program\Environment\nvm\v22.21.1 目录是否存在
- 确认该目录下有 node.exe 和 npm.cmd 文件
步骤2:修改NVM_SYMLINK路径(推荐) 将符号链接目录修改为 与NVM_HOME同盘 的路径,避免跨盘问题:
- 右键点击「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 找到 NVM_SYMLINK 变量,修改为: D:\Program\Environment\Node.js(可以是任意不存在的目录名)
- 确认 Path 变量中包含 %NVM_SYMLINK%
步骤3:重新创建符号链接
以管理员身份打开命令行窗口 (重要!创建符号链接需要管理员权限)
执行以下命令:
# 查看已安装的版本 nvm list # 使用指定版本(会自动创建符号链接) nvm use 22.21.1
步骤4:验证环境 执行以下命令确认配置成功:
node -v
npm -v总结这一小标题的问题:
nvm安装到d盘之后,也会下载node.js的版本Vxx.yy.zz到d盘中对应的nvm目录的下一级目录。但是在c盘的默认位置:c\nvm4w目录下,会创建一个nodejs快捷方式。导致可能出现跨盘问题,解决方法就是去环境变量中将NVM_SYMLINK的值改为d盘下某一个新的node.js目录
还有可能是powershell的权限设置,导致在trae中打不开 修改策略为RemoteSigned
PS C:\WINDOWS\system32> Get-ExecutionPolicy Restricted PS C:\WINDOWS\system32> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 执行策略更改 执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略? [Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y PS C:\WINDOWS\system32> Get-ExecutionPolicy RemoteSigned
最简单的方法:
如果上述方法太复杂,最简单的是:
- 卸载当前 NVM 和 Node.js
- 清理所有环境变量
- 重新安装 NVM 到 D:\Program\Environment\nvm
- 安装时选择符号链接到 D:\Program\Environment\Node.js\nodejs
这样能保证从零开始,没有旧配置干扰。
建议
我建议你保留 D:\Program\Environment\nvm\v22.21.1 作为实际文件位置,使用 D:\Program\Environment\Node.js 作为符号链接。这样:
- 所有实际文件在 nvm 目录下
- Node.js 符号链接在一个单独的目录
- 方便管理多个 Node.js 版本
★最简单方法的流程截图★-重视安装
这一个小时内出现的问题,其实和安装过程有很大关系。。。
首选是安装nvm的地址,选择d盘下D:\Program\Environment

然后是符号链接地址,选择d盘下D:\Program\Environment\Node.js

接着一路next通过即可。。。这一个小时的坑其实总结下来,就是上面这两张图
Node.js介绍
我的错误想法
->原来node.js也是后端语言吗?我以为他是专门为web三件套服务的框架,像vue一样哈哈哈
哈哈哈,这个误会太经典了!但你完全不用不好意思,因为 90% 的初学者(甚至很多入行的人) 第一眼看到 Node.js 都会这么想。
简单的答案:是的!Node.js 绝对是后端大将。
它和 Java、Python、Go 是坐在同一张桌子上吃饭的兄弟,都是运行在**服务器(Linux)**上的。
为了彻底解开这个误会,我们需要把“JavaScript”这个语言看作一个**“会说话的人”**。
1. 曾经的 JavaScript:被困在浏览器里的“服务员”
在 2009 年之前,JavaScript (JS) 确实只能在浏览器(Chrome/IE)里跑。
- 它的工作环境:浏览器。
- 它的职责:给网页做特效(弹窗、轮播图、验证表单)。
- 它的局限:它严禁接触电脑底层的任何东西(不能读硬盘文件、不能开服务器端口、不能连数据库)。你想啊,如果网页里的 JS 能读你硬盘文件,你浏览个网页,隐私全泄露了。
这时候的 JS,就像餐厅里的服务员。他只能在餐厅大堂(浏览器)活动,跟顾客(用户)说话。Vue 就是教这个服务员怎么把盘子摆得更好看的一本“培训手册”。
2. Node.js 的诞生:JavaScript “越狱”了
2009 年,有个天才(Ryan Dahl)想:“JS 写起来这么爽,为什么不能让它去厨房(服务器)炒菜呢?”
于是,他把 Chrome 浏览器的核心引擎(V8)抠了出来,加了一层壳,这就变成了 Node.js。
Node.js 不是一个框架,它是一个“环境”(Runtime)。
- 现在的 JS:依然说的是 JavaScript 语言。
- 工作环境:变成了服务器(Linux/Windows)。
- 获得的超能力:
- 读写文件:它可以随意增删改查电脑里的文件(
fs模块)。 - 操作网络:它可以开启 80 端口,当一个 Web 服务器。
- 连接数据库:它可以直接连 MySQL、Redis。
- 读写文件:它可以随意增删改查电脑里的文件(
这时候,JS 摇身一变,从服务员变成了大厨。
Node.js 就是那个让 JS 能进厨房炒菜的“工牌”。
3. 一图看懂区别:Node.js vs Vue
为了让你不晕,我们来个横向对比:
| 特性 | Vue.js (前端框架) | Node.js (后端环境) |
|---|---|---|
| 你的误解 | 是 JS 的框架 | 是 JS 的框架 (❌) |
| 真实身份 | 装修工 | 发动机 |
| 对标谁? | React, Angular | JDK (Java), Python环境 |
| 运行在哪? | 用户的浏览器里 | 公司的服务器里 |
| 能干嘛? | 操纵 DOM,画界面 | 读写数据库,处理 API 请求 |
| 如果没有它 | 网页会很难写 | JS 只能在浏览器里玩泥巴 |
关键点:
- Vue 是跑在 浏览器 里的。
- Node.js 是跑在 服务器 上的,它甚至不知道“浏览器”是什么,它只认代码和数据。
4. 为什么你会觉得它像“Vue 的服务者”?
因为你现在的开发体验(HBuilderX / VS Code)可能会让你产生错觉。
你在开发 Vue 的时候,确实装了 Node.js。但那个时候,Node.js 只是扮演了一个“建筑工”的角色:
- 当你写 Vue 代码时,浏览器看不懂
.vue文件。 - 所以,你本地电脑上的 Node.js 帮你在后台悄悄地把
.vue编译成了浏览器能看懂的.js和.css。
但这只是 Node.js 的兼职!
它的主业是真正的后端开发:写接口、写爬虫、写聊天室服务器。
5. 重新审视你的“全栈之路”
既然 Node.js 是后端,这告诉你一个天大的好消息:
如果你学会了 Node.js,你不需要学 Java 也能写后端!
- 以前的全栈:前端学 JS,后端学 Java。要学两门语言,脑子会劈叉。
- 现在的全栈 (Node.js):
- 前端:用 JS 写 Vue。
- 后端:用 JS 写 Node.js 接口。
- 数据库:用 JS 操作 MongoDB。
这就是传说中的 "JavaScript Everywhere"。你只要精通这一门语言,就能把我在《现代软件交付全景图》里列出的所有层级(前端、后端、桌面端)全部打通。
总结:
Node.js 是后端语言运行环境。它是让 JavaScript 能和 Java/Python 刚正面的武器。你如果不想学 Java,Node.js 就是你通往后端的最佳门票。😉
