【问题标题】:create build for multiple environments Nuxt为多种环境创建构建 Nuxt
【发布时间】:2022-01-11 05:03:32
【问题描述】:

我正在构建一个 Nuxt 应用程序,其中我将有两个环境 staging 和 production ,本地也应该被视为 staging,现在我需要创建一些命令并生成用于生产和 staging 的构建,它将部署在两个单独的服务器上。

我有两个问题

1)命令

npm run generate

总是生成一个我检查过的生产版本

console.log(process.env.NODE_ENV)

如何生成一个新的构建,其中 env 应该类似于 staging?

2)我想创建一些 .env 文件来保存一些与环境相关的变量,但我对如何为多个环境(暂存和生产)创建多个环境文件感到困惑。

我知道我的问题有点研究方向,我花了几天时间在互联网上进行研究,但是这些博客要么不相关,要么令人困惑,我从来没有真正得到我想要的东西,有人能指出我正确的方向吗?

【问题讨论】:

  • NODE_env 需要在暂存平台上定义,env 文件也是如此。这意味着如果您想要在本地使用某个变量,请将其设置在 .env 中,如果您想要在 Heroku、AWS 或类似平台上暂存/生产的特定变量,请在此处设置 env 变量(不是在 .env 中,而是在某些仪表板/设置选项卡)。
  • 如果我没记错的话,generate 使用默认的production,如果没有通过。如果你给它一个特定的值,无论是.env还是前缀npm run generate,都应该不错!
  • @kissu 我通过在 .env 中定义 NODE_ENV=staging 生成了一个构建,当我创建一个构建时,没有任何改变仍然显示生产
  • 这是因为构建时会覆盖环境变量。

标签: javascript vue.js nuxt.js dotenv


【解决方案1】:

如上所述,您可以这样做
NODE_ENV="staging" npm run generate
在构建应用程序时,即使这是 not recommended,您也应该只使用另一个环境变量,例如 ENV,并基于此为您的应用程序创建条件。

如果您想了解更多有关如何使用环境变量的详细信息,可以查看this answer

然后,env 变量的工作方式仍然适用于我所说的 AWS/Heroku 等...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多