首页 > 解决方案 > 如何使用不同的 .env 文件多次运行 1 个 Express 服务器项目

问题描述

我创建了一个可以有不同用途的无头 CMS 项目,现在我在 1 台服务器上运行 2 个网站,但是为了做到这一点,我有 2 个不同的文件夹具有相同的项目,它们之间的唯一区别是包含数据库名称的 .env 文件,端口和所有必需的数据。这将导致服务器的性能使用。

现在我想使用不同的 .env 文件多次运行 1 个快速服务器项目。我知道我们可以通过更改 .env 中的 1 个变量来运行服务器,例如 ("NODE_ENV=production node ./server.js") 但我想使用完全不同的 .env 文件运行项目,所以在文件夹中,我将有 .env1 .env2 .env3 ,因此当我运行项目时,它会在具有多个数据库的多个端口上运行多次,最后我只能通过 1 个项目同时运行多个网站。

在此先感谢您的帮助

标签: reactjsexpressnext.jscontent-management-systemserver-side-rendering

解决方案


您可以尝试使用dotenv https://www.npmjs.com/package/dotenv

您可以通过 path 选项指定要使用的 .env 文件路径,如下所示:

require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` })

然后使用正确的环境变量运行您的脚本以获取正确的.env文件。

您可以根据path需要更改它,只要它指向正确文件的正确路径即可。

编辑1:

https://github.com/toddbluhm/env-cmd

对于 CLI 级别的解决方案,您可以使用它。

npm install -g env-cmd

然后在你的package.json

{
  "scripts": {
    "server": "env-cmd ./env1 node index.js",
    "server2": "env-cmd ./env2 node index.js",
    ...
  }
}

推荐阅读