【问题标题】:NODE_ENV after deployment becomes production?部署后的 NODE_ENV 变为生产?
【发布时间】:2018-08-20 17:35:36
【问题描述】:

这可能是一个愚蠢的问题,但我在任何地方都找不到直接的答案,所以我宁愿问它也不要继续怀疑。

我正在阅读有关设置节点环境的信息。 this question 的答案是我们不应该从节点应用程序本身设置 NODE_ENV。

所以,我的理解是我们通过操作系统设置,像这样:

- linux & mac:导出 NODE_ENV=development

- windows:设置 NODE_ENV=development

但是当我们部署它时,比如 Heroku 或 AWS,我们想将其更改为生产环境,我们在哪里进行更改?它是自动的吗(Heroku 或 AWS 上的服务器已经将其设置为生产环境?)

正如我所说,这可能是个愚蠢的问题。但是文档似乎是为已经知道如何使用它的人编写的。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    这取决于您的部署机制是什么样的。如果您在 aws 上运行 ec2 实例,它只是一台愚蠢的机器,对如何部署代码一无所知。

    作为一个具体的例子,也许你正在运行 Docker 并且有一个构建步骤来创建你的 docker 镜像。然后在您各自的Dockerfile 中,您可以将NODE_ENV 设置为production

    【讨论】:

    • 所以,我正确地假设,在开发阶段和部署之间的某个地方,无论是我还是部署机制,都必须将 NODE_ENV 设置为生产环境?
    • 正确。但也请注意,您必须 使用它。如果您需要根据运行代码的位置(即在开发、暂存或生产中)具有不同的行为,这只是惯例。
    • 有时这样做很有用,例如if (process.env.NODE_ENV === 'dev') { /* something related to dev env only */ } 在本地运行时。也许与本地数据库交谈。
    • 好的,但是,将 NODE_ENV 更改为生产的正确位置将由我部署到的机制的文档提供?也就是说,Heroku 将拥有自己的位置,我应该设置 NODE_ENV,AWS 将拥有自己的位置,等等,等等...?也许某些机制默认设置了生产...?
    • 好的,这就是我需要知道的。谢谢。
    猜你喜欢
    • 2018-05-17
    • 2016-03-18
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 2020-06-17
    • 2018-03-26
    相关资源
    最近更新 更多