当前位置:  开发笔记 > 前端 > 正文

METEOR_SETTINGS env变量不会填充Meteor.settings

如何解决《METEOR_SETTINGSenv变量不会填充Meteor.settings》经验,为你挑选了1个好方法。

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

$ cat meteor-settings.json
{
  "public": {
    "s3path": "https://d2v4p3rms9rvi3.cloudfront.net"
  }
}

当我按照以下方式运行流星时:

$ meteor --version
Meteor 1.2.1
$ meteor --settings meteor-settings.json

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

根据官方Meteor文档,我可以使用METEOR_SETTINGS环境变量.问题是,当我填充并导出它时(如下所示):

$ 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?我有什么想法可以解决这个问题?



1> Brett McLain..:

文档中的重点是:

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

当他们说"直接运行您的服务器(例如从捆绑中)"时,他们意味着使用meteor构建,然后使用节点运行生成的bundle.meteor命令不会按设计选择METEOR_SETTINGS,因为METEOR_SETTINGS仅用于生产.

对于亚马逊,尝试这样的事情:

METEOR_SETTINGS={"public": {"key": "ABC"}} node main.js

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

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有