Przebudowuję istniejący projekt javascript w Maven i mam problemy z radzeniem sobie z różnymi plikami.obsługa wielu plików javascript z Maven & Jasmine
Używam jasmine-maven-plugin
który wygląda trochę jak ten w moim pom.xml:
<plugin>
<groupId>com.github.searls</groupId>
<artifactId>jasmine-maven-plugin</artifactId>
<version>1.0.1-beta-6</version>
<executions>
<execution>
<goals>
<goal>generateManualRunner</goal>
<goal>resources</goal>
<goal>testResources</goal>
<goal>test</goal>
<goal>preparePackage</goal>
</goals>
</execution>
</executions>
<configuration>
<jsSrcDir>src/main/javascript</jsSrcDir>
<jsTestSrcDir>src/test/javascript</jsTestSrcDir>
<preloadSources>
<preloadSource>lib/jquery-1.9.1.min.js</preloadSource>
</preloadSources>
</configuration>
</plugin>
początkowo mieć jeden js plik o nazwie master.js. Jak widać, wymaga to wstępnego załadowania jquery-1.9.1.min.js
lub otrzymam komunikat "BUILD FAILED". Kiedy wykonuję mvn compile
z terminala, sprawdza plik i tworzy zaciemniony plik master.min.js (bez błędów) - Używam również yuicompressor-maven-plugin
.
Teraz muszę dodać więcej plików do projektu. Plik master.js ma około 400 linii i jest wymagany na każdej stronie mojego projektu. Pozostałe pliki do dodania są duże, czasami mają ponad 1000 wierszy (ale z dużą ilością komentarzy i dokumentacji) i są specyficzne dla niektórych stron. Na przykład jeden jest wymagany tylko do logowania, podczas gdy inne służą tylko do celów administracyjnych.
Czy istnieje sposób mogę dodać te pliki do maven kompilacji, z zależność (lub preloading) mój plik master.js. Powodem tego jest;
- Istnieje zmienne globalne i metody, które są nazywane/używanych z innych stron js (Nie martw się, zmienne i metody nie są ukrywane)
- Nie chcę mieć duplikat kod w dowolnym miejscu.
- Mogłem utworzyć jeden bardzo długi plik, który byłby jednak dobry;
- Prawdopodobnie wpłynie to na czas ładowania.
- O wiele trudniej jest zarządzać kodem. (Być może poszczególne pliki mogą zostać połączone, gdy skompilowany)
Jeśli ktoś ma jakieś przemyślenia i sugestie na ten temat byłoby bardzo przydatne, ponieważ mam nadzieję, że do naśladowania najlepszych praktyk i nie natknąć się powikłań w przyszłość.