2012-09-06 5 views
6

Mam javascript projektu zostały większość modułów korzystania niektóre bibliotekami strony trzeciej jako zależności „globalny” (w szczególności jQuery i jquery plugins)wskazówki dotyczące migrowania javascript aplikację do korzystania z AMD (np requirejs)

chciałbym "wyczyścić" projekt (aby wyrazić wszystkie biblioteki jako zależne od requirejs.), jednak w moim przypadku jest to duże zadanie (wiele plików, dużo bibliotek innych producentów).

Jak mogę ułatwić/przyspieszyć migrację?

  • mogę „fake” za pomocą amd zależności od owijania bibliotekami innych firm w modułach, które po prostu załadować je (z rzędu! Wtyczki?)
  • Czy można bezpiecznie mieszać modułów ładowanych bibliotekami innych firm jako moduły i moduły, które bezpośrednio wykorzystują globalne?
  • Gdybym chciał zautomatyzować różne rzeczy, czy są jakieś narzędzia, których można użyć do "analizy" modułu requirejs, aby dowiedzieć się, czy dany symbol jest używany?

Edycja: Co mam na myśli mojego ostatniego pytanie brzmi „? Czy jest możliwe aby automatycznie przepisać moje pliki js tak że hej jawnie importować zależności zamiast opierania się na globalnych przeglądarki”

+0

można wyjaśnić ostatnie pytanie. Z jakiego powodu chcesz przeanalizować moduły? –

+0

@ AndreasKöberle Zmieniłem moje pytanie, mając nadzieję, że to wyjaśni. – phtrivier

Odpowiedz

0

Miałem similar question o potrzebie zawinięcia kodu strony trzeciej w modułach AMD. Mój wniosek był taki, że w moim przypadku nie ma żadnych korzyści (duża aplikacja Backbone). Więc powinieneś zadać sobie pytanie, czy naprawdę potrzebujesz importować jquery na przykład na AMD. Kończy się to modułami, w których za każdym razem importujesz jquery, co jest bardzo podatnym na błędy schematem.

Krótko mówiąc, nie ma sensu używać AMD do kodu, który będzie użyty w każdym przypadku.

+0

Nieprawda. Włączenie jQuery do każdej definicji modułu * jest * przydatne, szczególnie jeśli chodzi o testowanie jednostkowe. Ponadto, jeśli używasz Backbone, jedynymi plikami, w których powinieneś używać jQuery są widoki. – lededje

1

mogę „fake” za pomocą amd zależności od owijania bibliotekami innych firm w modułach, które po prostu załadować je

Tak można, RequireJS ma podkładkę config, który jest przeznaczony tylko dla tego .

Spójrz na ten artykuł Pomoże Ci zorganizować swój kod JavaScript z RequireJS http://www.stefanprodan.eu/2012/09/intro-requirejs-for-asp-net-mvc/

+0

Z tego co zrozumiałem, opcja "shim" miała na celu ustawienie zależności * pomiędzy * bibliotekami stron trzecich (kanonicznym przykładem jest Backbone, który wymaga załadowania jquery), bez użycia wtyczki 'zamówić!'. Chciałbym użyć shim * na końcu *, ale na razie nie mogę, ponieważ nie mogę wyrazić, że moje komponenty zależą od lib (nie miałbym "define ([" kręgosłup "], funkcji (Backbone) 'na przykład). Nadal używam wersji 1.0 z wtyczką" zamów ", ale to naprawię. – phtrivier

Powiązane problemy