我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
当前回答
很像其他答案,但没有任何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文件
其他回答
我在设置系统环境变量后得到了未定义。当我把APP_VERSION放在用户环境变量中,然后我可以通过process.env.APP_VERSION显示节点的值
使用cross-env。这会让你免去很多头疼的事情
-S cross-env
cross-env PARAM=value node ./index.js
这通常适用于非凭证。比如证书和钥匙 最好不要存储硬编码的用户id和密码,而是使用不在repo和dotenv中的.env文件
我强烈建议你查查dotenv包。
https://github.com/motdotla/dotenv
它有点类似于@Benxamin回答中建议的库,但它要干净得多,并且不需要任何bash脚本。同样值得注意的是,代码库很受欢迎,维护得很好。
基本上你需要一个.env文件(我强烈建议忽略你的git/mercurial/etc):
FOO=bar
BAZ=bob
然后在你的申请入口文件中尽早输入以下一行:
require('dotenv').config();
繁荣。完成了。的过程。Env '现在将包含上面的变量:
console.log(process.env.FOO);
// bar
”。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
环境变量(在本例中)用于向应用程序传递凭据。USER_ID和USER_KEY都可以从process.env中访问。USER_ID和process.env。USER_KEY分别。你不需要编辑它们,只需要访问它们的内容。
看起来他们只是让你选择从任何一个进程加载你的USER_ID和USER_KEY。Env或磁盘上的某个指定文件。
现在,当您运行应用程序时,奇迹发生了。
USER_ID=239482 USER_KEY=foobar节点app.js
这将传递用户id 239482和用户密钥作为foobar。这适用于测试,但是对于生产,您可能需要配置一些bash脚本来导出变量。