PowerShell运行npm start/npx tsc报错,寻求解决方案
问题根源
你的全局node命令脚本被错误篡改,强制指向了nodemon的启动文件,但实际上项目package.json的start命令根本不需要nodemon,且全局/项目内也没有对应正确安装的nodemon文件,导致执行任何调用node的命令时都触发错误。
修复步骤
删除错误的全局node脚本
找到全局npm目录(对应Windows路径为C:\Users\<你的用户名>\AppData\Roaming\npm,即报错信息里的/mnt/host/c/Users/-/AppData/Roaming/npm),删除该目录下的node(shell脚本)和node.cmd(Windows批处理文件)。调整环境变量优先级
在PowerShell中打开系统环境变量设置,确保node.js的安装目录(通常是C:\Program Files\nodejs)排在C:\Users\<你的用户名>\AppData\Roaming\npm之前。这样执行node命令时,会优先调用官方的node.exe,而非npm目录下的错误脚本。验证修复效果
在PowerShell中执行where node,确认输出的第一个路径是node安装目录下的node.exe。之后重新运行npm start、npx tsc等命令,即可正常执行。额外说明
若确实需要使用nodemon,需在项目中局部安装(npm install nodemon --save-dev),再修改package.json的start脚本为nodemon build/index.js,绝不能篡改全局的node命令脚本。
内容的提问来源于stack exchange,提问作者Tomas Buzeta

