【发布时间】:2017-11-24 13:04:47
【问题描述】:
我在 AngularJS 和 Firebase 上创建了一个应用程序。我决定将 Firebase 凭据存储为环境变量。我在 Ubuntu 上,我使用 Grunt 运行开发服务器。
我尝试创建一个.bashrc 文件来存储环境变量,如下所示(将值插入引号之间)。
export APIKEY=""
export AUTH_DOMAIN=""
export DATABASE_URL=""
export STORAGE_BUCKET=""
export MESSAGING_SENDER_ID=""
然后我有一个config.js 文件,它使用这些变量来配置 Firebase。
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 的问题?
【问题讨论】:
标签: angularjs node.js ubuntu gruntjs environment-variables