在自有生产环境中访问流星设置

Ste*_*ins 8 settings production-environment meteor

根据Meteor的文档,我们可以通过命令行包含设置文件,以提供特定于部署的设置.

但是,该--settings选项似乎只能通过rundeploy命令使用.如果我在自己的基础架构上运行Meteor应用程序 - 如文档中的" 运行在自己的基础架构"部分所述- 似乎没有办法在流程的任何位置指定特定于部署的设置文件.

有没有办法在我自己的基础架构上运行的生产环境中访问Meteor设置?

jag*_*ill 14

是,在环境变量中包含设置内容METEOR_SETTINGS.例如,

export METEOR_SETTINGS='{"privateKey":"MY_KEY", "public":{"publicKey":"MY_PUBLIC_KEY", "anotherPublicKey":"MORE_KEY"}}'

然后正常运行流星应用程序.

这将填充Meteor.settings对象正常.对于上面的设置,

Meteor.settings.privateKey == "MY_KEY" #Only on server
Meteor.settings.public.publicKey == "MY_PUBLIC_KEY" #Server and client
Meteor.settings.public.anotherPublicKey == "MORE_KEY" #Server and client
Run Code Online (Sandbox Code Playgroud)

对于我们的项目,我们使用一个upstart脚本并将其包含在那里(尽管upstart的语法略有不同).但是,如果使用普通的shell脚本启动它,则只需export在node命令之前包含该语句.例如,您可以使用以下脚本:

export METEOR_SETTINGS='{"stuff":"real"}'
node /path/to/bundle/main.js
Run Code Online (Sandbox Code Playgroud)

要么

METEOR_SETTINGS='{"stuff":"real"}' node /path/to/bundle/main.js

您可以在此处找到有关bash变量的更多信息.