gpt4 book ai didi

angularjs - 无法从 Grunt 服务器运行的 Node + AngularJS 应用程序中读取环境变量

转载 作者:太空宇宙 更新时间:2023-11-03 16:58:48 24 4
gpt4 key购买 nike

我已经在 AngularJS 和 Firebase 上创建了一个应用程序。我决定将 Firebase 凭据存储为环境变量。我在 Ubuntu 上,我使用 Grunt 运行开发服务器。

我尝试创建一个 .bashrc 文件来存储如下所示的环境变量(值插入在引号之间)。

export APIKEY=""
export AUTH_DOMAIN=""
export DATABASE_URL=""
export STORAGE_BUCKET=""
export MESSAGING_SENDER_ID=""

然后我有一个使用这些变量配置 Firebase 的 config.js 文件。

var config = {
apiKey: process.env.APIKEY,
authDomain: process.env.AUTH_DOMAIN,
databaseURL: process.env.DATABASE_URL,
storageBucket: process.env.STORAGE_BUCKET,
messagingSenderId: process.env.MESSAGING_SENDER_ID
};

firebase.initializeApp(config);

但是,我认为 Grunt 不会获取这些值,因为无论我运行 Grunt 服务器还是使用 node server.js 运行应用程序,它都不会为这些变量找到值。我还尝试先从命令行创建变量,就像这样(在引号之间插入值)。

$ export APIKEY=""

无论如何,我的应用无法看到环境变量。它在控制台中传递此错误。

Uncaught ReferenceError: process is not defined at config.js:2

当我将值直接插入 config.js 文件时,应用程序运行良好。我尝试了多种在 Ubuntu 中配置变量的选项,但似乎都没有用。

编辑:可能还值得注意的是,Heroku 也无法识别这些变量,尽管我已经在 Heroku 中注册了它们,但它会出现相同的错误(process is not defined)。会不会是 Angular 的东西?

最佳答案

您需要在 config.js 文件中创建一个包含您的凭据和要求的文件 env.js。您可以忽略 Git 中的文件。

env.js

module.exports = {
APIKEY: "your-api-key",
AUTH_DOMAIN: "your-auth-domain",
DATABASE_URL: "your-database-URL",
STORAGE_BUCKET: "your-storage-bucket",
MESSAGING_SENDER_ID: "your-messaging-sender-id"
}

.gitignore

env.js

config.js

var keys = require('env');

var config = {
apiKey: keys.APIKEY,
authDomain: keys.AUTH_DOMAIN,
databaseURL: keys.DATABASE_URL,
storageBucket: keys.STORAGE_BUCKET,
messagingSenderId: keys.MESSAGING_SENDER_ID
};

firebase.initializeApp(config);

关于angularjs - 无法从 Grunt 服务器运行的 Node + AngularJS 应用程序中读取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com