我已尝试在package.json
中像这样宣布它们
"scripts": {
"start": "MY_ENV=hello MY_ENV2=foo meteor"
}
但是我的代码中有undefined
(在服务器端使用envs)
通过process.env
我知道其他声明这种敏感数据的方法(比如settings.json
),但我想知道如何以另一种方式做(我正在使用macos
)
答案 0 :(得分:2)
您的应用可以使用命令行设置,但只能在服务器上使用。在客户端代码中,process.env没有它们。您可以编写Meteor方法,以便客户端可以请求环境设置。这种方法存在潜在的安全风险,因为您允许访问客户端上的服务器设置并可能将其暴露给用户。
您可以将设置放在数据库集合中,您的代码将从那里读取它们。这可能是一种更好的方法,因为每个部署都可以轻松实现不同的设置。
如果您想使用process.env
,可以在命令行上执行此操作,
MY_ENV=xxx meteor --port 3010
或者你可以将它们放在像这样的shell脚本中
#!/bin/bash
export MY_ENV=xxx
export MY_ENV2=yyy
meteor --port 3010
答案 1 :(得分:0)
macOs
上)是:
#!/bin/bash
MONGO_URL="my-secret"
SOME_API_KEY="my-another-secret"
FOO=40
BAR=25
meteor --settings settings-local.json --port 300
执行此.sh
文件初始化所有环境变量