2015-11-18 10 views
5

Tworzę pakiet meteor dla biblioteki JS, który zawiera wiele opcjonalnych wtyczek w głównym repozytorium. Chciałbym udostępnić użytkownikowi opcję wyboru rozszerzeń bibliotek, które będą używane bez konieczności ich niepotrzebnego dodawania.Jak utworzyć pakiet meteorJS z opcjami kompilacji dla użytkownika?

Czy jest to możliwe z bieżącym systemem kompilacji? Jeśli tak, to gdzie mam zacząć?

+1

Dumb & dirty solution: Utwórz jedną paczkę dla każdej opcji. Będę zadowolony, jeśli ktoś znajdzie lepszy! –

+0

Tak naprawdę nie lubię tego podejścia, i staje się koszmarem do utrzymania, mam nadzieję, że jest lepszy sposób. – pushplaybang

+0

Może to być sposób, aby to zrobić w niektórych przypadkach przy użyciu asynchronicznego ładowania skryptów, ale to wszystko staje się czymś i byłoby o wiele lepiej radzić sobie z kompilacją. – pushplaybang

Odpowiedz

1

To nie jest obecnie obsługiwane. W pewnym sensie każdy pakiet jest "opcją" włączaną przez sam system pakietów. Twoim obecnym najlepszym rozwiązaniem jest po prostu publikowanie pakietów dla każdego elementu i być może dodawanie pakietów dla typowych kombinacji kompilacji.

Twitter Bootstrap obecnie robi coś podobnego tak:

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

również istotne, niektóre z (wielu) paczkowanych pakietów trzpieni się tam:

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

czekam na tę odpowiedź zestarzeć się.

+1

Należy zauważyć, że jeśli jest więcej niż kilka opcji i są one w kompozycie, staje się całkowicie niemożliwe. 5 możliwych do złożenia opcji to 120 pakietów do utrzymania. –

+0

@Kyll zgodził się. Inną opcją jest włączenie wszystkich rzeczy do jednego nadprogramowego pakietu. – Jesse

+0

To dość frustrujące, może moduły rozwiążą go, ale jest to dość krytyczne dla wielu bibliotek. async może być użyty podczas inicjowania pakietu, ale będzie się bałagan, a my włamywamy się do api zasobów .... będzie wyglądał trochę dłużej, ale wydaje się, że to jedyna realna odpowiedź, na razie. – pushplaybang