我试着跟着教程,上面写着:

有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。

根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。


当前回答

我在设置系统环境变量后得到了未定义。当我把APP_VERSION放在用户环境变量中,然后我可以通过process.env.APP_VERSION显示节点的值

其他回答

使用cross-env。这会让你免去很多头疼的事情

-S cross-env

cross-env PARAM=value node ./index.js

这通常适用于非凭证。比如证书和钥匙 最好不要存储硬编码的用户id和密码,而是使用不在repo和dotenv中的.env文件

步骤1:将环境变量添加到相应的文件中。例如,您的登台环境可以称为.env。其中包含特定于登台环境的环境变量USER_ID和USER_KEY。

第二步:包装。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

就像ctrlplusb说的,我建议你使用包dotenv,但另一种方法是创建一个js文件,并要求它在你的应用服务器的第一行。

js:

process.env.VAR1="foo"
process.env.VAR2="bar"

app.js:

require('./env') // env.js relative path.
console.log(process.env.VAR1) // foo

如果你使用的是mac/linux,你想检索你正在使用的机器的本地参数,这是你要做的:

在终端运行nano ~/.bash_profile 添加如下一行:export MY_VAR=var 保存并运行source ~/.bash_profile 在节点中使用console.log(process.env.MY_VAR);

windows用户:小心!建议在Unix系统下使用这些命令。但在Windows上,它们不会持续存在,它们只在当前shell中设置了一个变量,当你重新启动时,它就会消失。

SET TEST="hello world" $env:TEST = "hello world"


Windows下设置持久环境变量的3种方法:

A) .env文件在你的项目-最好的方法。因为你可以将该文件复制到任何计算机,并在运行项目时获得相同的配置。

在你的项目根目录下创建一个。env文件,内容如下:TEST="hello world" 编写一些将读取该文件的节点代码。我建议安装dotenv (npm install dotenv——save),然后添加require('dotenv').config();在节点设置代码期间。 process.env.TEST现在在node中可用

env文件是将api-key排除在代码库之外的一种好方法

B)使用Powershell -这将创建一个变量,可在其他终端访问。但这很糟糕,因为重启电脑后它就会丢失。

[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")

这种方法在Windows论坛上被广泛推荐,人们似乎没有意识到在系统重新启动后它不会持续....

C)使用Windows GUI

在开始菜单中搜索“环境变量”或在控制面板中选择“编辑系统环境变量”。打开一个对话框,点击对话框底部的“环境变量”按钮,打开一个编辑视图,点击“新建”按钮,添加一个新的环境变量。一件容易的事。并且即使在重新启动后仍然存在。但您不应该使用它来配置特定的代码库。