我正在尝试按照教程说它:
"有几种方法可以加载凭据.
从环境变量加载,
从磁盘上的JSON文件加载,
密钥需要如下:
USER_ID, USER_KEY
...这意味着如果您正确设置环境变量,则根本不需要在应用程序中管理凭据."
基于一些谷歌搜索,似乎我需要设置变量process.env
?我如何以及在何处设置这些凭据?示例请.
只需在命令行上提供env值
USER_ID='abc' USER_KEY='def' node app.js
环境变量(在本例中)用于将凭据传递给您的应用程序.USER_ID
并且USER_KEY
可以分别从process.env.USER_ID
和访问process.env.USER_KEY
.您无需编辑它们,只需访问其内容即可.
看起来他们只是给你的加载之间的选择USER_ID
,并USER_KEY
从任一process.env
或磁盘上的一些specificed文件.
现在,当您运行应用程序时,会发生魔力.
USER_ID=239482 USER_KEY=foobar node app.js
这将传递用户ID 239482
和用户密钥为foobar
.这适用于测试,但是对于生产,您可能会配置一些bash脚本来导出变量.
您可以通过进程全局变量设置环境变量,如下所示:
process.env['NODE_ENV'] = 'production';
适用于所有平台.
如果您需要管理选项,请尝试使用envs npm包.如果已设置,则返回环境值.否则,您可以指定存储在全局默认对象变量中的默认值(如果它不在您的环境中).
使用.env("dot ee-en-vee")或环境文件有很多原因.个人可以管理他们自己的配置.您可以使用自己的环境设置将不同的环境(dev,stage,prod)部署到云服务.你可以设置合理的默认值.
在.env
文件中,每一行都是一个条目,如下例所示:
NODE_ENV=development API_URL=http://api.domain.com TRANSLATION_API_URL=/translations/ GA_UA=987654321-0 NEW_RELIC_KEY=hi-mom SOME_TOKEN=asdfasdfasdf SOME_OTHER_TOKEN=zxcvzxcvzxcv
你应该不包括.env
在版本控制库(它添加到您的.gitignore
文件).
要从.env
文件中获取变量到您的环境中,您可以export NODE_ENV=development
在启动应用程序之前使用bash脚本执行相应的操作.
#!/bin/bash while read line; do export "$line"; done <source .env
然后这将在您的应用程序javascript:
var envs = require('envs'); // If NODE_ENV is not set, // then this application will assume it's prod by default. app.set('environment', envs('NODE_ENV', 'production')); // Usage examples: app.set('ga_account', envs('GA_UA')); app.set('nr_browser_key', envs('NEW_RELIC_BROWSER_KEY')); app.set('other', envs('SOME_OTHER_TOKEN));
我强烈建议您查看dotenv包.
https://github.com/motdotla/dotenv
它类似于@Benxamin在答案中建议的库,但它更清晰,不需要任何bash脚本.另外值得注意的是,代码库很受欢迎且维护良好.
基本上你需要一个.env文件(我强烈建议你从你的git/mercurial/etc中忽略它):
FOO=bar
BAZ=bob
然后在您的应用程序条目文件中尽早放入以下行:
require('dotenv').config();
繁荣.完成.'process.env'现在将包含上面的变量:
console.log(process.env.FOO);
// bar
'.env'文件不是必需的,因此您无需担心您的应用程序在不存在时会丢失.
就像ctrlplusb所说的那样,我建议您使用package dotenv
,但是另一种方法是创建一个js文件,并在应用服务器的第一行中要求它。
env.js:
process.env.VAR1="Some value" process.env.VAR2="Another Value"
app.js:
require('env') console.log(process.env.VAR1) // Some value
步骤1:将环境变量添加到其相应文件中。例如,您的暂存环境可以称为.env.staging
,其中包含特定于暂存环境的环境变量USER_ID
和USER_KEY
。
步骤2:在package.json
文件中,添加以下内容:
"scripts": { "build": "sh -ac '. ./.env.${REACT_APP_ENV}; react-scripts build'", "build:staging": "REACT_APP_ENV=staging npm run build", "build:production": "REACT_APP_ENV=production npm run build", ... }
然后像这样在您的部署脚本中调用它:
npm run build:staging
超级简单的设置,就像魅力!
资料来源: https : //medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
这取决于您的操作系统和shell
在带有shell bash的linux上,你可以创建这样的环境变量(在控制台中):
export FOO=bar
有关ubuntu上的环境变量的更多信息(例如):
ubuntu上的环境变量
对于Windows用户,此Stack Overflow问题和最佳答案对于如何通过命令行设置环境变量非常有用。
如何在Windows中设置NODE_ENV = production?