【问题标题】:Vue.js/Template: Using .env?Vue.js/模板:使用 .env?
【发布时间】:2018-07-26 00:19:09
【问题描述】:

我有一个基于 webpack 模板的 vue.js 项目。我们部署到不同的 cloudfoundry 环境:Dev、Int 和 Prod。 对于 Int 和 Prod,我想在生产模式下运行应用程序,但使用不同的 env 变量。我尝试使用以下based on a forum thread

module.exports = {
    NODE_ENV: '"production"',
    SC_AUTH_CLIENT_ID: JSON.stringify(process.env.AUTH_CLIENT_ID),
    API_URL: JSON.stringify(process.env.API_BASE_URL),
};

SC_AUTH_CLIENT_IDAPI_URL 均未定义(尽管变量已在 cf 配置中设置) - 为什么?

【问题讨论】:

    标签: webpack vue.js environment-variables cloud-foundry


    【解决方案1】:

    您需要从.env 文件中读取的类似dotenv 的包。您的 shell 环境变量将在 process.env 中可用,但节点默认不会处理 .env 文件。

    【讨论】:

    • 不知何故不起作用... vue模板是否有可能覆盖任何东西?
    【解决方案2】:

    您应该能够使用通过 Cloud Foundry 设置的环境变量来完成您想要的。

    例如:

    1. cf push your-app --no-start
    2. cf set-env your-app NODE_ENV 'development'
    3. cf start your-app

    那么process.env 应该包含NODE_ENV 设置为development。默认情况下,NODE_ENV 应设置为 production,因为 Node.js 构建包会自动设置。您可以以完全相同的方式设置其他变量。

    您不需要第三方库来阅读它们。 Cloud Foundry 应该将它们作为实际环境变量公开给您的进程,您可以使用标准方法以您选择的语言读取环境变量(例如,Node.js 中的process.env)。

    或者,您可以在 CF cli manifest.yml 文件中设置环境变量。如果您有很多要设置的内容,这可能会更方便,因为它可以让您一次设置所有内容,并且您不需要单独推送/启动,就像上面的示例一样。 here 的详细信息。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 2021-07-19
      • 2017-07-28
      • 2017-09-16
      • 2017-06-29
      相关资源
      最近更新 更多