project's run different env

66 阅读1分钟

首先,在你的代码中使用一个配置文件来存储不同环境下的配置信息。例如,你可以创建一个名为 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.jsonscripts 部分中定义不同环境下的启动命令。 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 环境