2015-03-21 13 views
8

W Meteor, czy istnieje sposób określenia pakietu, który ma być używany tylko w środowisku programistycznym lub tylko w środowisku produkcyjnym? Kiedy dodaję pakiety przez astmospherejs.com, wszystkie są sortowane chronologicznie według czasu dodanego do pliku .meteor/packages. Zasadniczo szukam ruby ​​Gemfile, w której można określić różne środowiska. Dzięki!Meteor - Jak korzystać z pakietu w Dev lub tylko produkcji?

+3

Cóż, w 'Package.describe' zwrotnego (' plików package.js') można ustawić 'debugOnly: true' aby nie zainstalować pakiet przy użyciu' meteor deploy', na przykład, aby użyć kodu wypełniającego kolekcję, którego nie chcesz używać w prod. Mam nadzieję, że to pomoże! –

+0

Przydatne. Niestety, jest to [jeszcze nie udokumentowane] (https://github.com/meteor/meteor/issues/3843). Szukam "productionOnly", ale wydaje się, że nie istnieje. – foobarbecue

Odpowiedz

7

Oto mały trick Używam uruchomić pakiet w rozwoju tylko:

  1. z aplikacji root utwórz pakiet pusty (lub dodać do katalogu PACKAGE_DIRS): meteor create --package my-package-manager

  2. W 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. W środowisku dev: echo "export IS_DEVELOPMENT=true" >> ~/.bash_profile (lub ~/.zshrc w moim przypadku)

  4. To oczywiście zrób to samo dla IS_PRODUCTION w zależności od używanego serwera produkcyjnego. na Heroku na przykład: heroku config:set IS_PRODUCTION=true

Używam tego za pakiet dev-only, nie próbowałem go tylko produkcja, ale powinno działać.

+1

Dzięki za tę przydatną wskazówkę. Meteor nie ma elastyczności Gemfile. W tym celu możesz również użyć opcji 'process.env.NODE_ENV'. –

0

Z wersji 1.3.2 meteorytu można po prostu umieścić flagę prodOnly lub debugOnly.

Więcej informacji here

Powiązane problemy