【问题标题】:Automatically load settings.json on starting Meteor.js在启动 Meteor.js 时自动加载 settings.json
【发布时间】:2014-01-27 10:20:45
【问题描述】:

而不是使用标志--settings settings.json 启动 Meteor

mrt --settings settings.json

是否可以在启动时通过运行自动定义Meteor.Settings

mrt

【问题讨论】:

  • 现在怎么样了?

标签: javascript node.js meteor


【解决方案1】:

现在命令应该是meteor(不再是mrt):

meteor --settings settings.json

要自动加载设置文件,我喜欢“The Meteor Chef”中建议的方法,该方法利用了npm

在项目根目录下创建文件package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "start": "meteor --settings settings.json"
  }
}

我们可以用以下方式启动流星:

npm start

开发/生产

也可以有两个或多个脚本用于两个或多个设置:

{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "meteor:dev": "meteor --settings settings-dev.json",
    "meteor:prod": "meteor --settings settings-prod.json"
  }
}

然后:

npm run meteor:dev

npm run meteor:prod

(注意这里我们必须添加run 命令,“特殊”脚本start 不需要)

【讨论】:

  • 感谢更新,npm start 方法很有趣!是否也可以使用这种方法导出变量MONGO_URLMONGO_OPLOG_URL
  • 认为可以在meteor:devmeteor:prod 值中使用env set MONGO_URL 来完成?
  • @Nyxynyx 是的,也许像env MONGO_URL="<some value>" MONGO_OPLOG_URL="<another value>" meteor --settings settings.json
  • 警告!这种方法是为了让 Node 出于某种原因消耗 100% 的 CPU。如果您遇到这种情况,请使用下面答案中的别名方法(只需将 mrt 替换为 meteor)。
【解决方案2】:

如果您不想摆弄别名,可以在特定项目的根目录中创建一个 bash 脚本,如下所示:

dev.sh:

#!/bin/bash
meteor --settings ./config/development/settings.json

然后从流星项目目录运行它:

./dev.sh

如果您收到-bash: ./dev.sh: Permission denied,请执行以下操作:

chmod +x ./dev.sh

如果您使用其他服务,您可以像这样在流星之前启动它们:

#!/bin/bash
sudo service elasticsearch start
meteor --settings ./config/development/settings.json

【讨论】:

  • 是的,我实际上已经改用这种方式发射流星了。启动服务/设置环境的确切原因
【解决方案3】:

对于开发人员,请使用alias

alias mrt='mrt --settings settings.json'

alias mrts='mrt --settings settings.json'

unalias mrts删除它

如果您希望它是永久的,请将其放入~/.bashrc~/.bash_profile

或者,meteor 接受一个环境变量(对生产有用)

METEOR_SETTINGS = `cat path/to/settings.json`
export METEOR_SETTINGS

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2020-11-24
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2012-10-09
    • 2011-02-12
    • 2022-08-11
    • 1970-01-01
    相关资源
    最近更新 更多