You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Terminal/PowerShell中npm无法使用,node命令正常的问题求助

解决Node.js v19.9.0中PowerShell/Windows Terminal里npm命令报错问题

问题现象

通过winget安装Node.js v19.9.0后,Git Bash中node和npm均正常运行,但在PowerShell或Windows Terminal中:

  • node命令可正常执行
  • npm命令抛出MODULE_NOT_FOUND错误,错误路径显示为重复嵌套的C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js

已尝试过的操作:官方安装包重新安装Node.js、重装Windows Terminal/PowerShell、删除临时文件、确认Path环境变量配置正确。

解决步骤

1. 检查PowerShell中的npm别名/自定义函数

在PowerShell中执行以下命令,查看npm的实际调用目标:

Get-Command npm
  • 如果输出显示为Alias或Function类型,说明存在自定义别名/函数覆盖了默认的npm.cmd,执行以下命令删除:
    # 删除别名
    Remove-Item Alias:npm -Force
    # 如果是函数,删除函数
    Remove-Item Function:npm -Force
    

删除后重启终端测试npm命令。

2. 检查环境变量中的冗余路径

打开系统环境变量设置(右键此电脑→属性→高级系统设置→环境变量):

  • 检查系统变量和用户变量中的Path条目,确保仅存在C:\Program Files\nodejs\(npm.cmd位于该目录下,会自动关联正确的npm-cli.js路径),删除任何重复或多余的node_modules\npm\bin相关路径。
  • 修改后点击确定,重启终端生效。

3. 修复npm全局配置

直接调用正确路径的npm-cli.js来重置npm的prefix配置:

node "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" config set prefix "C:\Program Files\nodejs"

执行完成后重启终端测试。

4. 修复npm.cmd脚本文件

找到C:\Program Files\nodejs\npm.cmd,用记事本打开,将内容替换为以下标准脚本:

@echo off
SETLOCAL
SET "NODE_EXE=%~dp0node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)
SET "NPM_CLI_JS=%~dp0node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)
"%NODE_EXE%" "%NPM_CLI_JS%" %*

保存文件后重启终端测试npm命令。

5. 清理PowerShell配置文件

检查PowerShell的自定义配置文件是否存在修改npm的代码:

notepad $PROFILE

如果文件中存在任何与npm路径、别名相关的自定义代码,删除后保存,重启PowerShell测试。


内容的提问来源于stack exchange,提问作者Szabó Áron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:25:26