Skip to content

Node.js配置

NVM: Node.js版本控制

安装nvm&node.js

推荐方法:使用 NVM(Node Version Manager)

这是最干净、最方便的方法,可以管理多个 Node.js 版本。

  1. 安装 NVM-Windows:先卸载当前 Node.js v14(老版本),用图吧工具箱-Geek Uninstaller

  2. 下载安装 NVM-Windows

    访问 GitHub 下载:https://github.com/coreybutler/nvm-windows/releases 下载 nvm-setup.exe并安装

    很重要-安装过程见本笔记:安装过程

  3. 使用 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同盘 的路径,避免跨盘问题:

  1. 右键点击「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 找到 NVM_SYMLINK 变量,修改为: D:\Program\Environment\Node.js(可以是任意不存在的目录名)
  3. 确认 Path 变量中包含 %NVM_SYMLINK%

步骤3:重新创建符号链接

  1. 以管理员身份打开命令行窗口 (重要!创建符号链接需要管理员权限)

  2. 执行以下命令:

    # 查看已安装的版本
    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

最简单的方法:

如果上述方法太复杂,最简单的是:

  1. 卸载当前 NVM 和 Node.js
  2. 清理所有环境变量
  3. 重新安装 NVM 到 D:\Program\Environment\nvm
  4. 安装时选择符号链接到 D:\Program\Environment\Node.js\nodejs

这样能保证从零开始,没有旧配置干扰。

建议

我建议你保留 D:\Program\Environment\nvm\v22.21.1 作为实际文件位置,使用 D:\Program\Environment\Node.js 作为符号链接。这样:

  1. 所有实际文件在 nvm 目录下
  2. Node.js 符号链接在一个单独的目录
  3. 方便管理多个 Node.js 版本

★最简单方法的流程截图★-重视安装

这一个小时内出现的问题,其实和安装过程有很大关系。。。

首选是安装nvm的地址,选择d盘下D:\Program\Environment

image-20251215210934047

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

image-20251215211047088

接着一路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, AngularJDK (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 就是你通往后端的最佳门票。😉

基于 VitePress 搭建 | 记录生活与代码