使用 @quasar/quasar-app-extension-dotenv 时从服务器(不是 .env 文件)读取环境变量
Reading environment variables from server (not .env file) when using @quasar/quasar-app-extension-dotenv
我在开发期间使用 @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
}
}
知道如何从服务器变量加载变量吗?
谢谢
我遇到了同样的问题。我找到了解决这个问题的方法,它不是最好的,但很有效。
我还使用@quasar/quasar-app-extension-dotenv 扩展从文件中读取本地环境变量。我把这个文件添加到 gitignore.
在此之后我写了一个小脚本来创建一个与本地文件同名的文本文件。它看起来像这样(我使用创建文件包来做这个):
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 之外,但我们通过构建命令传递它的数据。就我而言,我只需要 firebase 密钥即可从 firebase 获取所有其他密钥。
因此,如果您需要更多密钥,则必须稍微扩展脚本。
我知道这是一个混乱的解决方案,但这是我为这个问题找到的唯一解决方案。
我在开发期间使用 @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
}
}
知道如何从服务器变量加载变量吗?
谢谢
我遇到了同样的问题。我找到了解决这个问题的方法,它不是最好的,但很有效。
我还使用@quasar/quasar-app-extension-dotenv 扩展从文件中读取本地环境变量。我把这个文件添加到 gitignore.
在此之后我写了一个小脚本来创建一个与本地文件同名的文本文件。它看起来像这样(我使用创建文件包来做这个):
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 之外,但我们通过构建命令传递它的数据。就我而言,我只需要 firebase 密钥即可从 firebase 获取所有其他密钥。 因此,如果您需要更多密钥,则必须稍微扩展脚本。 我知道这是一个混乱的解决方案,但这是我为这个问题找到的唯一解决方案。