Meteor:如何根据CLI参数加载不同的文件?

时间:2015-10-19 10:14:22

标签: meteor

在我的Meteor(1.2)应用程序中,我分隔文件以进行开发和制作

e.g。

  • 的客户机/ LIB / appVars.config.PROD.js
  • 的客户机/ LIB / appVars.config.CONFIG.js

理想情况下,“twin”文件具有相同的变量,函数等,但差异很小,但调试和生成中常见的(全局)变量和函数具有相同的名称。

有没有办法用命令行参数调用 meteor run DEBUG_MODE = true | false 以便我加载一个或另一个文件,具体取决于当前模式(调试,生产)?

1 个答案:

答案 0 :(得分:2)

设置不同的环境变量并通过CLI运行meteor run --settings settings.json

然后你只需要一个开发和生产(和登台?)settings.json

设置文件示例:

{
  "awsBucket": "my-example-staging",
  "awsAccessKeyId": "AABBCCddEEff12123131",
  "awsSecretKey": "AABBCCddEEff12123131+AABBCCddEEff12123131",
  "public": {
    "awsBucketUrl": "https://my-meteor-example.s3.amazonaws.com",
    "environment": "staging"
  },
  "googleApiKey": "AABBCCddEEff12123131"
}

编辑添加:

要访问环境键,只需选择

即可
Meteor.settings.awsBucket

安全更新(感谢Dave Weldon)

请参阅https://docs.meteor.com/#/full/structuringyourapp

重新制作与开发,你应该有两个settings.json文件,一个用于生产的标准文件(.config / settings.json)和一个开发文件(.config / development / config.json)以及当你在生产你引导meteor --settings .config/development/settings.json

客户端,请注意,如果您将密钥设为公开,例如

{
  "service_id":"...",
  "service_secret":"...",
  "public":{
      "service_name":"..."
  }
}

然后只能在客户端上访问Meteor.settings.public.service_name