如何在NodeJS CLI应用中设置NODE_ENV,无需每次命令行指定
解决Node.js CLI默认加载环境变量的问题
方法一:在入口文件设置默认环境变量
直接在CLI的入口文件(比如index.js)最顶部添加环境变量默认值,确保在加载dotenv前完成设置:
// index.js 首行代码 process.env.NODE_ENV = process.env.NODE_ENV || 'development'; // 加载对应环境的.env文件 require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` }); // 后续的CLI业务逻辑 // ...
执行myapp时,NODE_ENV会默认设为development,自动加载.env.development;如果需要生产环境,依然可以通过NODE_ENV=production myapp覆盖默认值,加载.env.production。
方法二:通过package.json脚本简化启动(可选)
如果你的CLI是通过npm全局安装的,可以在package.json的scripts里定义快捷命令,方便不同环境启动:
{ "name": "myapp", "bin": "./index.js", "scripts": { "start": "NODE_ENV=development node index.js", "prod": "NODE_ENV=production node index.js" } }
执行npm start即可启动开发环境,npm run prod启动生产环境。但如果希望直接用myapp启动,方法一更直接。
跨平台兼容(可选)
如果需要在Windows系统上正常设置环境变量,可使用cross-env包消除平台差异:
- 安装依赖:
npm install cross-env --save-dev
- 修改package.json脚本(入口文件逻辑不变的前提下,用它设置启动命令):
"scripts": { "start": "cross-env NODE_ENV=development node index.js" }
内容的提问来源于stack exchange,提问作者WaLinke
相关产品推荐
相关产品推荐

