首先,在你的代码中使用一个配置文件来存储不同环境下的配置信息。例如,你可以创建一个名为 config.js 的文件,并在其中定义不同环境下的配置项,如下所示:
// config.js
module.exports = {
"dev": {
port: 3000,
database: 'dev_db',
// 其他 dev 环境的配置项
},
"stg": {
port: 4000,
database: 'stg_db',
// 其他 stg 环境的配置项
},
"prd": {
port: 5000,
database: 'prd_db',
// 其他 prd 环境的配置项
}
};
接下来,根据当前的环境设置一个环境变量,例如 NODE_ENV。可以通过在终端中运行以下命令来设置环境变量:
//对于 Windows:
set NODE_ENV=dev && nodemon app.js
//对于 macOS/Linux:
export NODE_ENV=dev
然后,在你的启动脚本 app.js 中引入并使用配置文件中对应环境的配置项。
tips: npm i cross-env 否则config[env]取值为undefined
例如:
// app.js
const config = require('./config');
// 获取当前环境
const env = process.env.NODE_ENV || 'dev';
// 使用配置文件中对应环境的配置项
const port = config[env].port;
const database = config[env].database;
// 在这里使用配置项启动你的程序
// ...
最后,你可以在 package.json 的 scripts 部分中定义不同环境下的启动命令。
npm i cross-env
抹平不同系统下env不一样的问题
例如:
{
"scripts": {
"dev": "cross-env NODE_ENV=dev nodemon app.js",
"stg": "cross-env NODE_ENV=stg nodemon app.js",
"prd": "cross-env NODE_ENV=prd nodemon app.js",
}
}
现在,你可以通过运行以下命令来启动不同环境下的程序:
npm run dev # 启动 dev 环境
npm run stg # 启动 stg 环境
npm run prd # 启动 prd 环境