我在OS系统上本地运行一个Meteor应用程序,并使用一个meteor-settings.json文件:
$ cat meteor-settings.json
{
"public": {
"s3path": "https://d2v4p3rms9rvi3.cloudfront.net"
}
}当我运行流星时:
$ meteor --version
Meteor 1.2.1
$ meteor --settings meteor-settings.jsonMeteor.settings.public.s3path有预期的s3 url,一切都很好。
根据官方流星博士,我可以使用METEOR_SETTINGS环境变量。问题是,当我填充和导出它时(如下所示):
$ export METEOR_SETTINGS=$(cat meteor-settings.json)
$ echo $METEOR_SETTINGS
{ "public": { "s3path": "https://d2v4p3rms9rvi3.cloudfront.net" } }
$ meteorMeteor.settings.public变为空,所有基于s3 url的功能都中断了。
如果不使用env变量,我就无法绑定和模拟生产部署,因为afaik产品部署不能使用命令行标志(至少在AWS/EBS上是如此)。
为什么Meteor不填充Meteor.settings.public?我有什么办法解决这个问题吗?
发布于 2016-01-11 17:07:22
文档中最突出的一行是:
在直接运行服务器时(例如从包中),可以通过将JSON直接放入METEOR_SETTINGS环境变量来指定设置。
当他们说“直接运行您的服务器(例如从包)”时,意味着使用meteor build,然后使用节点运行结果包。meteor命令不会按设计来获取METEOR_SETTINGS,因为METEOR_SETTINGS只用于生产。
对于亚马逊来说,可以尝试这样的方式:
METEOR_SETTINGS={"public": {"key": "ABC"}} node main.js在命令中设置环境变量以运行流星应用程序。不确定这是否适用于亚马逊。
https://stackoverflow.com/questions/34726865
复制相似问题