执行npm run start-local报错:'APP_ENV'不是内部或外部命令
问题解决:'APP_ENV' 不被识别的报错
核心结论
不需要将nodemon加入环境变量,npm脚本会自动读取项目node_modules/.bin目录下的可执行文件,你遇到的问题是Windows与类Unix系统(Linux/macOS)的环境变量设置语法不兼容导致的。
问题原因
资深开发的电脑大概率使用Linux或macOS,这类系统支持APP_ENV=local nodemon app.js这种直接在命令前追加环境变量的语法;而Windows的CMD终端不支持该写法,会把APP_ENV当成独立命令解析,从而报错。
解决方案
方案1:使用Windows原生语法修改脚本
直接修改package.json中的start-local命令,用Windows的set命令设置环境变量:
"scripts": { "start": "node app.js", "start-local": "set APP_ENV=local && nodemon app.js" }
如果环境变量值包含空格,需要用引号包裹:set APP_ENV="local dev" && nodemon app.js
方案2:用cross-env实现跨平台兼容(推荐)
安装跨平台环境变量工具cross-env,统一所有系统的环境变量设置方式:
- 安装依赖:
npm install cross-env --save-dev
- 修改
package.json脚本:
"scripts": { "start": "node app.js", "start-local": "cross-env APP_ENV=local nodemon app.js" }
内容的提问来源于stack exchange,提问作者Ochaoash
相关产品推荐
相关产品推荐

