【问题标题】:How to define different vars for different environment in node.js?如何在 node.js 中为不同的环境定义不同的变量?
【发布时间】:2018-10-27 19:46:07
【问题描述】:

我开始使用dotenv 来定义我的环境变量。我可以在一个 .env 文件中轻松地为 dev 和 prod 环境指定我的常用变量。但是如何为开发和生产环境指定不同的变量。

例如,我想将 DB_NAME = dev_db 用于开发,将 DB_NAME = prod_db 用于生产。如何使用dotenv 实现这一目标?

我正在使用 node.js。 提前谢谢!

【问题讨论】:

    标签: javascript node.js environment-variables


    【解决方案1】:

    .env 文件在不同的环境中应该是不同的,因此不应提交到您的源代码控制仓库(对于 Git,这意味着 .gitignore)。

    例如,您将在生产中使用 config.env

    DB_NAME=prod_db
    

    在开发中,像这样:

    DB_NAME=dev_db
    

    在这两种环境中,文件将被命名为 config.env 并驻留在同一位置,以便代码能够读取正确的文件。

    在我的项目中,提交的文件名为 config.env.sample,其中包含所有必要的值,以便开发人员知道他们需要在其环境中添加到 config.env 的内容:

    # config.env.sample
    # Sample configuration file for Project XYZ
    
    # Name of the database
    DB_NAME=dev_db
    

    这里是more information from the FAQ

    我应该提交我的 .env 文件吗?

    没有。我们强烈建议不要将您的 .env 文件提交给版本控制。它应该只包含特定于环境的值,例如数据库密码或 API 密钥。您的生产数据库的密码应该与您的开发数据库不同。

    我应该有多个 .env 文件吗?

    没有。我们强烈建议不要使用“主”.env 文件和“环境”.env 文件(如 .env.test)。您的配置应因部署而异,并且您不应在环境之间共享值。

    【讨论】:

    • 哦,我想我明白了。我必须在不同的机器上拥有同名的不同文件。换句话说,没有任何代码逻辑。 .env 文件中的简单不同值必须放在不同机器上的同一位置?对吗?
    • @Nastro 没错,你明白了。代码将尝试加载那里的文件,无论其中有什么。
    猜你喜欢
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2015-10-11
    • 2020-06-07
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多