传入我的Meteor应用程序的生产实例的配置文件?

Dis*_*ive 7 node.js meteor

所以在我的本地机器上,当我启动Meteor应用程序时,我传入一个json文件来指定这样的应用程序设置

meteor --settings local.json
Run Code Online (Sandbox Code Playgroud)

这似乎有效.但是,正如meteor.com文档(http://docs.meteor.com/#deploying)中所述,在您自己的基础架构中部署应用程序时,您需要使用"meteor bundle"捆绑您的应用程序,然后将其作为节点实例就像这样

PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
Run Code Online (Sandbox Code Playgroud)

我能够做到这一点,并在我的服务器上部署了应用程序.但是,我不确定我是如何用我的配置设置传递json文件的.

PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp --settings prod.json node bundle/main.js
PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js --settings prod.json
Run Code Online (Sandbox Code Playgroud)

--settings流星的东西还是节点的东西?如果是后者,我该如何传入我的JSON文件?

Aks*_*hat 11

--settings 是一个流星的东西.

在生产中,您可以使用环境变量,因为--settings它只是用于meteor run或仅用于meteor

来自文档:

Meteor.settings包含特定于部署的配置选项.您可以通过将--settings选项(包含JSON数据的文件)传递给meteor run或meteor deploy来初始化设置,或者将服务器进程的METEOR_SETTINGS环境变量设置为JSON字符串

所以像这样的东西可以工作:

PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp METEOR_SETTINGS=$(cat prod.json) node bundle/main.js
Run Code Online (Sandbox Code Playgroud)

  • @Diskdrive:你必须[+1这个流星问题](https://github.com/meteor/meteor/issues/1116#issuecomment-48982351)通过配置文件传递设置.我还发现通过单行环境变量传递复杂设置非常麻烦,而且通常是不可能的. (2认同)