Windows 11 怎么安装 Node.js?npm 报错一次讲清(2026)

Windows 11 安装 Node.js 只需 4 步:下载 LTS 的 .msi、默认安装、新开终端运行 node -v 和 npm -v。附 npm 无法识别、PowerShell 禁止脚本的解决办法。

您照着教程运行 npm install,终端却提示”npm 不是内部或外部命令”?这说明 Node.js 还没装,或者终端找不到它。别急,咱们几分钟就能搞定。

先说结论:打开 nodejs.org 的下载页,下载标着 LTS 的 Windows Installer(.msi),一路默认选项安装;装完后关掉所有终端,重新打开一个,输入 node -v 和 npm -v,能看到版本号就成功了。npm 是随 Node.js 一起装的,不用单独下载。

一、先弄清楚:您要装的是什么

Node.js 是一个能让 JavaScript 脱离浏览器运行的环境,用的是和 Chrome 相同的 V8 引擎。Windows 上很多前端构建工具、本地网页服务器,都跑在它上面。npm 则是它自带的”包管理器”,简单讲,就是帮项目下载所需代码库的工具。

下载页上有几种版本标签,选错了会白折腾:

  • LTS(长期支持版):日常使用就选它。据 Node.js 官方发布页说明,LTS 版本通常会获得总计约 30 个月的关键缺陷修复,生产环境应只用 Active LTS 或 Maintenance LTS。
  • Current(当前版):新的大版本,适合尝鲜,不适合”只想让项目跑起来”的人。
  • Alpha 和 EOL:前者是早期测试版,后者是已停止维护的旧版,除非项目明确要求,否则别碰。

如果项目的 README 里写明了需要某个大版本,就装那个版本;没写的话,直接装官网显示的 LTS。

二、用 Windows 安装包安装(最省事)

这是一个人用一台电脑最简单的方案。安装包会写入 Program Files,所以需要有安装软件权限的账号。

  1. 用浏览器打开 Node.js 官方下载页;
  2. 确认页面顶部的版本是标着 LTS 的那个;
  3. 找到 Windows 的预编译安装包区域,大多数电脑选 x64,Windows on Arm 笔记本选 ARM64;
  4. 点击 Windows Installer (.msi)。Standalone Binary (.zip) 是免安装版,需要自己管理,新手先别选;
  5. 在”下载”文件夹里双击打开 .msi;
  6. 按向导点下一步:同意协议,保持默认安装目录(通常是 C:\Program Files\nodejs),保持默认功能(一般包含 npm 和”添加到 PATH”);
  7. 如果安装器问您要不要安装”原生模块编译工具”,不确定就先不勾,以后需要再补;
  8. 点 Install,通过系统的用户账户控制提示,最后点 Finish。

提醒一句:安装期间一直开着的终端窗口,用的还是旧的环境变量(PATH),装完请先关掉,再去测试。

三、检查 Node.js 和 npm 是否装好

  1. 右键点击开始按钮,选择”终端”。PowerShell 或命令提示符也可以;
  2. 输入 node -v 回车,应显示以 v 开头的版本号;
  3. 输入 npm -v 回车,显示 npm 自己的版本号(和 Node.js 的版本号不一样);
  4. 想做个真正的测试,运行 node -e "console.log('Node is working')",下一行应该打印出这句话。

Node 与 npm 版本输出,以及 Node is working 的运行结果
Windows 上的示例输出,您的版本号可能不同。

然后回到项目文件夹,重新运行 npm install,完成后会出现一个 node_modules 文件夹。

四、提示”node 不是内部或外部命令”怎么办

这句话的意思是:Windows 把 PATH 里的每个文件夹都找了一遍,没找到 node.exe 或 npm。按下面顺序排查:

  1. 关闭所有终端、PowerShell 和代码编辑器,再重新打开。VS Code 这类编辑器会沿用启动时的 PATH,所以要重启整个软件,而不只是关掉终端标签;
  2. 打开文件资源管理器,确认 C:\Program Files\nodejs 存在并且里面有 node.exe。没有的话说明安装没完成,重新运行 .msi;
  3. 打开”环境变量”,在系统变量 Path 里找 C:\Program Files\nodejs。全局 npm 包通常放在用户目录下 AppData\Roaming 里的 npm 文件夹,对应条目应该出现在用户变量 Path 里。

系统变量中的 Node.js 与用户变量中的 npm 的 Path 示例
系统与用户 Path 里常见的 Node.js、npm 条目(示意图)。

  1. 条目缺失的话,重新运行安装器,有”修复(Repair)”就选它,或者手动把文件夹加到 Path,然后新开终端;
  2. 还是不行,就注销 Windows 再登录,让所有程序重新读取环境变量。

五、PowerShell 提示”禁止运行脚本”

有些电脑上,命令提示符里 npm 正常,PowerShell 却报”在此系统上禁止运行脚本”。这不是 Node.js 的问题,而是 PowerShell 的执行策略在作怪。据微软 about_Execution_Policies 文档,各作用域都没设置策略时,Windows 客户端的有效策略是 Restricted,不允许运行脚本。npm 在 PowerShell 里的启动器恰好是脚本,所以被拦了。

有两个办法:

  1. 改用命令提示符跑 npm。在终端标签旁的下拉箭头里选”命令提示符”即可;
  2. 或者只给自己的账号放开本地脚本:先运行 Get-ExecutionPolicy -List 看当前设置,再运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,按提示输入 Y。RemoteSigned 允许运行本机脚本,但要求下载来的脚本有签名;CurrentUser 范围不需要管理员权限。

公司电脑上,组策略可能会覆盖您的设置,命令没效果就问问 IT 部门。

六、想同时用多个版本?换版本管理器

只装一个版本没问题,但如果两个项目需要不同版本,比如课程作业要旧一点的 LTS,自己的项目要新一点的,就该用版本管理器了。它能并排装多个版本,一条命令切换。

微软的 Node.js on Windows 文档推荐 nvm-windows(第三方工具,因为原版 nvm 不支持 Windows),并提到 nvs 和 Volta 也可选。微软提醒的两点值得照做:

  • 先卸载已装的 Node.js,并删掉残留的 C:\Program Files\nodejs 文件夹,免得两套环境抢 PATH;
  • 版本管理器是按用户配置的,不适合共用电脑或构建服务器。

另外,Node.js 下载页的选择器里选 Windows、fnm 和 npm,会显示一组 PowerShell 命令,第一条是 winget install Schniz.fnm,后面是用 fnm 安装 Node.js 并检查版本的命令。请原样复制页面上的命令,因为里面的版本号每次发布都会变。

七、装在 Windows 本机,还是用 WSL?

微软的建议是:新手或为 Windows 开发,直接装在 Windows 上;项目要部署到 Linux 服务器,或依赖 Linux 专属工具,就在 WSL 2 里用。上面讲的都是 Windows 本机方案。如果走 WSL,请把 Node.js 装在 Linux 发行版里,而不是 Windows 里。

八、更新与卸载

更新:安装包方式装的,下载新的 LTS .msi 运行即可,使用默认文件夹时通常会原地升级。完成后新开终端运行 node -v 确认。项目要求更新的 npm 时,也可以运行 npm install -g npm。

卸载:开始 → 设置 → 应用 → 已安装的应用,找到 Node.js,点右边三个点,选”卸载”并确认。用户目录里的全局包和 npm 缓存可能会残留,只有在准备换版本管理器、想清理干净时才需要处理。

常见问题(FAQ)

没有管理员权限,能装 Node.js 吗?

.msi 要装进 Program Files,需要管理员批准。没有权限的话,常用办法是下载同一页面上的 Standalone Binary (.zip),解压到用户目录下的某个文件夹,再把该文件夹加到用户 Path。

npm install 报编译错误怎么办?

有些包带有 C 或 C++ 写的原生扩展,安装时需要现场编译,这就要用到 Python 和 Visual Studio 的 C++ 构建工具,而普通的 Node.js 安装并不包含它们。安装时跳过了原生模块工具的话,重新运行安装器可能会再次提示,也可以自己装这些工具。

安装包和版本管理器能混着用吗?

不建议。PATH 里有两份 Node.js,会出现 node -v 显示一个版本、项目却在跑另一个版本的混乱情况。选一种方式,把另一种卸干净。

装完 Node.js 后还需要装什么?

多数项目还需要 Git 来克隆代码。两者都装好后,新开终端进入项目文件夹运行 npm install,再看 README 里启动项目的命令即可。

小结一下:选 LTS、用 .msi 默认安装、新开终端验证,遇到”不是内部或外部命令”就先重启终端并检查 Path,PowerShell 拦脚本就改用命令提示符或放开 CurrentUser 范围的策略。(信息来源:Node.js 官网与微软文档,查询日期 2026 年 11 月 11 日,版本号以官网为准。)