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

NPM start命令在CMD正常运行,Bash终端提示Node未识别

问题诊断与解决方案

问题场景

开发MERN栈TODO应用时,Express服务器代码正常,package.json的启动脚本配置为:

"scripts": { "start": "nodemon src/index.js" }

在CMD终端执行npm run start可正常启动,但在Bash终端执行时出现报错:

>server@1.0.0 start
>nodemon src/index.js 
node' is not recognized as an internal or an external command, operable program...

且Bash终端中直接运行node -v可正常返回版本号。

可能根源

npm运行脚本时会使用自身配置的shell环境,该环境未正确加载Node.js的路径;或全局安装的nodemon在npm脚本的环境上下文里无法被正确识别。

解决方案

1. 修正npm的shell配置

查看npm默认使用的shell:

npm config get script-shell

若返回结果为cmd.exe,说明npm在Bash环境下仍调用CMD的shell,可将其改为bash(路径需匹配你的Bash实际安装位置,以Git Bash为例):

npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"

2. 局部安装nodemon并调用

全局安装的nodemon可能存在路径识别问题,优先在项目内局部安装:

npm install nodemon --save-dev

修改package.json的启动脚本,使用npx调用局部nodemon:

"scripts": { "start": "npx nodemon src/index.js" }

或直接指定局部nodemon的路径:

"scripts": { "start": "./node_modules/.bin/nodemon src/index.js" }

3. 重新加载Bash环境变量

若使用Windows下的Git Bash,尝试重新加载环境变量后再运行npm:

source ~/.bashrc
npm run start

若使用WSL的Bash,确保Node.js是安装在WSL环境内,而非Windows系统的Node.js,避免跨环境路径冲突。

4. 直接指定Node.js绝对路径

若以上方法无效,可在启动脚本里直接写入Node.js的绝对路径(路径需匹配你的实际安装位置):

"scripts": { "start": "\"C:\\Program Files\\nodejs\\node.exe\" ./node_modules/.bin/nodemon src/index.js" }

验证

完成上述调整后,在Bash终端重新执行npm run start,即可正常启动nodemon与Express服务器。


内容的提问来源于stack exchange,提问作者Nevid Rahal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:49:56