配置NODE_ENV区分开发/生产脚本执行报错,寻求解决方法
解决Windows下npm脚本设置NODE_ENV报错的问题
问题原因
你当前的脚本用了PowerShell的环境变量语法$env:NODE_ENV,但npm在Windows默认用CMD执行脚本,CMD不识别该语法,再加上JSON里双引号转义的问题,导致解析出错,出现了NODE__ENV(双下划线)的错误提示。
解决方案
方案1:适配Windows CMD环境
直接用CMD的set命令设置环境变量,语法简单还不用额外转义:
"scripts": { "start": "set NODE_ENV=development && nodemon server.js", "start:prod": "set NODE_ENV=production && nodemon server.js" }
方案2:强制用PowerShell执行脚本
如果偏好PowerShell语法,可以显式指定用PowerShell执行,同时改用单引号避免JSON转义问题:
"scripts": { "start": "powershell -Command $env:NODE_ENV='development'; nodemon server.js", "start:prod": "powershell -Command $env:NODE_ENV='production'; nodemon server.js" }
方案3:跨平台兼容(推荐)
用cross-env包实现跨平台统一语法,不用区分Windows/Linux/macOS:
- 先安装依赖:
npm install cross-env --save-dev
- 修改package.json脚本:
"scripts": { "start": "cross-env NODE_ENV=development nodemon server.js", "start:prod": "cross-env NODE_ENV=production nodemon server.js" }
内容的提问来源于stack exchange,提问作者Nezuko Chan
相关产品推荐
相关产品推荐

