首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >METEOR_SETTINGS env变量不填充Meteor.settings

METEOR_SETTINGS env变量不填充Meteor.settings
EN

Stack Overflow用户
提问于 2016-01-11 16:49:27
回答 1查看 1.1K关注 0票数 4

我在OS系统上本地运行一个Meteor应用程序,并使用一个meteor-settings.json文件:

代码语言:javascript
复制
$ cat meteor-settings.json
{
  "public": {
    "s3path": "https://d2v4p3rms9rvi3.cloudfront.net"
  }
}

当我运行流星时:

代码语言:javascript
复制
$ meteor --version
Meteor 1.2.1
$ meteor --settings meteor-settings.json

Meteor.settings.public.s3path有预期的s3 url,一切都很好。

根据官方流星博士,我可以使用METEOR_SETTINGS环境变量。问题是,当我填充和导出它时(如下所示):

代码语言:javascript
复制
$ export METEOR_SETTINGS=$(cat meteor-settings.json)
$ echo $METEOR_SETTINGS
{ "public": { "s3path": "https://d2v4p3rms9rvi3.cloudfront.net" } }
$ meteor

Meteor.settings.public变为空,所有基于s3 url的功能都中断了。

如果不使用env变量,我就无法绑定和模拟生产部署,因为afaik产品部署不能使用命令行标志(至少在AWS/EBS上是如此)。

为什么Meteor不填充Meteor.settings.public?我有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-01-11 17:07:22

文档中最突出的一行是:

在直接运行服务器时(例如从包中),可以通过将JSON直接放入METEOR_SETTINGS环境变量来指定设置。

当他们说“直接运行您的服务器(例如从包)”时,意味着使用meteor build,然后使用节点运行结果包。meteor命令不会按设计来获取METEOR_SETTINGS,因为METEOR_SETTINGS只用于生产。

对于亚马逊来说,可以尝试这样的方式:

代码语言:javascript
复制
METEOR_SETTINGS={"public": {"key": "ABC"}} node main.js

在命令中设置环境变量以运行流星应用程序。不确定这是否适用于亚马逊。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34726865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档