【问题标题】:Reading environment variables from server (not .env file) when using @quasar/quasar-app-extension-dotenv使用 @quasar/quasar-app-extension-dotenv 时从服务器(不是 .env 文件)读取环境变量
【发布时间】:2021-02-20 05:41:29
【问题描述】:

我在开发过程中使用 @quasar/quasar-app-extension-dotenv 从本地主机上的 .env 文件加载环境变量。

在生产中,我在 Netlify 上托管项目,当我在 Netlify 仪表板中设置环境变量时,它在程序运行期间未定义。

我的 quasar.extensions.json 看起来像这样:

{
  "@quasar/dotenv": {
    "env_development": ".env",
    "env_production": ".env",
    "common_root_object": "none",
    "create_env_files": false,
    "add_env_to_gitignore": false       
  }
}

知道如何从服务器变量中加载变量吗?

谢谢

【问题讨论】:

    标签: environment-variables quasar-framework quasar


    【解决方案1】:

    我有同样的问题。我找到了一个解决方案,它不是最好的,但很有效。

    我还使用了@quasar/quasar-app-extension-dotenv 扩展从文件中读取本地环境变量。我将此文件添加到 gitignore。

    在此之后,我编写了一个小脚本,它创建了一个与本地文件同名的文本文件。它看起来像这样(我使用 create-file 包来执行此操作):

    var createFile = require('create-file')
    let contentToWrite = process.argv[2]
    
    createFile('NameOfLocalFile', contentToWrite, function (err) {
        if (err) console.log(err)
        else console.log('succesfully wrote file')
    })
    

    使用此脚本,您可以将环境变量作为参数传递。 在 netlify 上,我添加了这样的构建命令:

    (npm run-script writeEnvFile API_KEY=******) && (quasar build || { sleep 120; false; })
    

    所以所有的 env 文件都在 github 之外,但我们通过 build 命令传递它的数据。就我而言,我只需要 firebase 密钥即可从 firebase 获取所有其他密钥。 因此,如果您需要更多键,则必须稍微扩展脚本。 我知道这是一个混乱的解决方案,但这是我为这个问题找到的唯一解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 2017-10-08
      • 2018-06-19
      • 2020-09-02
      • 1970-01-01
      • 2020-07-30
      相关资源
      最近更新 更多