2015-11-18 4 views
5

Sto creando un pacchetto Meteor per una libreria JS che contiene un numero di plugin opzionali nel repository principale. Vorrei fornire all'utente la possibilità di selezionare le estensioni della libreria da utilizzare, senza includerle sempre senza necessità.Come si crea un pacchetto meteorJS con le opzioni di compilazione per l'utente?

Ciò è possibile con il sistema di generazione corrente? Se sì, da dove comincio?

+1

Soluzione stupida e sporca: crea un pacchetto per opzione. Sarò felice se qualcuno ne trova uno migliore! –

+0

Sì, non mi piace molto questo approccio, e diventa un incubo da mantenere, spero che ci sia un modo migliore. – pushplaybang

+0

Potrebbe esserci un modo per farlo in alcuni casi usando il caricamento asincrono degli script, ma questo diventa un tutto e sarebbe molto meglio gestirlo nella compilazione. – pushplaybang

risposta

1

Questo non è attualmente supportato. In un certo senso, ogni pacchetto è l'opzione che abiliti attraverso il sistema di pacchetti stesso. La tua migliore scommessa attuale è pubblicare solo pacchetti per ogni pezzo e magari aggiungere pacchetti per combinazioni di build comuni.

Twitter Bootstrap attualmente fa qualcosa di simile in questo modo:

twbs:bootstrap   // normal bootstrap 
twbs:bootstrap-noglyph // bootstrap sans glpyhs 

anche rilevanti, alcuni dei (molti) pacchetti pre-confezionati stilo là fuori:

stolinski:stylus-multi 
cryptoquick:stylus-multi 
mquandalle:stylus 

vedo l'ora di questa risposta andando stantio.

+1

Nota che, se ci sono più di un paio di opzioni e sono componibili, diventa completamente non-mantenibile. 5 opzioni componibili sono 120 pacchetti da mantenere. –

+0

@Kyll ha acconsentito. L'altra opzione è includere tutte le cose in un unico pacchetto gonfiato. – Jesse

+0

In realtà è piuttosto frustrante, forse i moduli lo risolveranno, ma è piuttosto critico per molte librerie. async potrebbe essere usato, durante l'inizializzazione di un pacchetto, ma diventerà disordinato, e quindi stiamo hackerando con api assets .... andando a guardare un po 'di più, ma questa sembra l'unica risposta valida, per ora. – pushplaybang

Problemi correlati