React项目执行npm start报'.'不是内部或外部命令错误如何解决?
问题解决方案
错误根因
该报错出现在Windows系统环境下,npm脚本中./node_modules/.bin/env-cmd的写法是类Unix系统(Linux、macOS)的Shell语法,Windows原生的cmd、PowerShell不支持以./开头直接执行相对路径下的可执行文件,因此会将.识别为非法命令。你之前给路径加转义双引号的尝试无法解决问题,因为核心问题不是路径含空格,而是路径执行语法不兼容Windows。
排查步骤
- 首先确认项目
package.json的dependencies或devDependencies中已经包含env-cmd依赖,如果没有先执行npm install env-cmd -D完成安装 - 修改npm脚本配置,移除
./node_modules/.bin/前缀,npm执行脚本时会自动将该目录加入系统PATH,可直接调用对应命令 - 若修改后仍报错,删除项目根目录下的
node_modules文件夹、package-lock.json文件,重新执行npm install安装依赖后再启动项目
最优解决方案(全平台兼容)
直接修改package.json中的scripts配置即可:
"redirect:env-dev": "env-cmd -f ./envs/.env.dev",
其他可选解决方案
- 使用npx调用(自动查找node_modules下的命令):
"redirect:env-dev": "npx env-cmd -f ./envs/.env.dev",
- 仅Windows环境临时兼容写法(不推荐,无法适配类Unix系统):
"redirect:env-dev": ".\\node_modules\\.bin\\env-cmd -f .\\envs\\.env.dev",
内容的提问来源于stack exchange,提问作者fatemeh zamanipour
相关产品推荐
相关产品推荐

