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

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

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


当前回答

创建一个名为local-env的文件,并用变量填充它

PORT=80
DB_NAME=foo
SOME_URL=example.com

现在这样运行node:

source ./local_env ; node index.js

其他回答

这取决于您的操作系统和shell

在linux上使用shell bash,你可以在控制台中创建这样的环境变量:

export FOO=bar

有关ubuntu环境变量的更多信息(例如):

ubuntu上的环境变量

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

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

步骤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

对于windows用户来说,这个Stack Overflow问题和顶部答案对于如何通过命令行设置环境变量非常有用

如何在Windows中设置NODE_ENV=production ?

很像其他答案,但没有任何lib或(bash)导出。

我有一些加密的变量,然后我需要在飞行中生成它们。

神奇发生在set -a &&…&& set +a可以是一些内容或文件。

#!/bin/sh

set -a    
SOMEVAR_A="abcd"
SOMEVAR_B="efgh"
SOMEVAR_C=123456
set +a

# or
set -a && . ./file && set +a

我有一个docker-entrypoint.sh:

#!/bin/sh

node app/config/set-environment.js

ENVFILE=/tmp/.env

if [[ ! -f "$ENVFILE" ]] ; then
    echo "File $ENVFILE is not there, aborting."
    exit
fi

# here is where things happen
set -a && . $ENVFILE && set +a

if [ "${NODE_ENV}" = "development" ]; then
  npx nodemon app/server.js
else
  node app/server.js
fi

exec "$@"

而set-environment.js生成一个(tmp) .env文件