2015-03-21 10 views
8

In Meteor, esiste un modo per specificare un pacchetto da utilizzare solo nell'ambiente di sviluppo o solo nell'ambiente di produzione? Quando aggiungo pacchetti tramite astmospherejs.com, vengono tutti raggruppati nel file .meteor/packages ordinati cronologicamente in base all'ora aggiunta. In sostanza, sto cercando quello che sarebbe un rubino Gemfile, in cui è possibile specificare diversi ambienti. Grazie!Meteor - Come utilizzare un pacchetto solo nello sviluppo o nella produzione

+3

Ebbene, nel 'Package.describe' callback (file' package.js') è possibile impostare 'debugOnly: true' al fine di non distribuire il pacchetto quando si utilizza' meteora deploy', ad esempio per utilizzare un codice di raccolta che non si desidera utilizzare in prod. Spero che ti aiuti! –

+0

Utile. Sfortunatamente, questo è [non ancora documentato] (https://github.com/meteor/meteor/issues/3843). Sto cercando una "produzione solo" ma non sembra esistere. – foobarbecue

risposta

7

Ecco un piccolo trucco che ho usato per eseguire un pacchetto in fase di sviluppo solo:

  1. dalla radice app, creare un pacchetto vuoto (o aggiungere alla directory PACKAGE_DIRS): meteor create --package my-package-manager

  2. In 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. On ambiente dev: echo "export IS_DEVELOPMENT=true" >> ~/.bash_profile (o ~/.zshrc nel mio caso)

  4. Quindi ovviamente fare la stessa cosa per IS_PRODUCTION su qualsiasi cosa si usi per il server di produzione. su Heroku per esempio: heroku config:set IS_PRODUCTION=true

Sto usando questo per un pacchetto dev-solo, non hanno provato con la produzione di sola ma dovrebbe funzionare.

+1

Grazie per questo suggerimento utile. Meteor non ha la flessibilità di Gemfile. Puoi anche usare 'process.env.NODE_ENV' per questo scopo. –

0

Da meteor versione 1.3.2, è possibile semplicemente inserire la bandiera prodOnly o debugOnly.

Maggiori informazioni here

Problemi correlati