【问题标题】:Meteor - How to Use a Package in Dev or Production OnlyMeteor - 如何仅在开发或生产中使用包
【发布时间】:2015-03-21 23:26:49
【问题描述】:

在 Meteor 中,有没有办法指定只在开发环境中使用的包,或者只在生产环境中使用?当我通过 astmospherejs.com 添加包时,它们都被归入.meteor/packages 文件,按添加时间按时间顺序排序。本质上,我正在寻找一个 ruby​​ Gemfile,您可以在其中指定不同的环境。谢谢!

【问题讨论】:

  • 好吧,在Package.describe 回调(package.js 文件)中,您可以设置debugOnly: true 以便在使用meteor deploy 时不部署包,例如使用集合填充代码不想在产品中使用。希望它会有所帮助!
  • 有用。不幸的是,这是not yet documented。我正在寻找“productionOnly”,但它似乎不存在。

标签: javascript meteor


【解决方案1】:

这是我一直用来在开发中运行包的一个小技巧:

  1. 从您的应用根目录创建一个空白包(或添加到您的PACKAGE_DIRS 目录):meteor create --package my-package-manager

  2. 在 package.js 中:

    Package.on_use(function(api) {
      // production only
      if (process.env.IS_PRODUCTION) {
        api.use('some:package');
      }
      // dev only
      if (process.env.IS_DEVELOPMENT) {
        api.use('devonly:package');
      }
    });
    
  3. 在开发环境中:echo "export IS_DEVELOPMENT=true" >> ~/.bash_profile(或在我的情况下为 ~/.zshrc

  4. 那么显然在你用于生产服务器的任何东西上对IS_PRODUCTION 做同样的事情。例如在 heroku 上:heroku config:set IS_PRODUCTION=true

我将它用于仅用于开发的软件包,尚未尝试将其用于仅生产,但它应该可以工作。

【讨论】:

  • 感谢这个有用的提示。 Meteor 缺乏 Gemfile 的灵活性。您也可以为此使用process.env.NODE_ENV
【解决方案2】:

从流星版本 1.3.2 开始,您可以简单地将标志 prodOnlydebugOnly

更多信息here

【讨论】:

  • 此链接已损坏
  • 感谢您通知我,我已更新链接
猜你喜欢
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多