Używam jquery w mojej aplikacji internetowej i muszę załadować więcej plików skryptów jquery na jedną stronę.
Firma Google zasugerowała, żebym połączyć wszystkie pliki skryptów jquery w jeden plik.
Jak mogę to zrobić?
javascript
jquery
jquery-ui
Chandrasekhar
źródło
źródło
Wypróbuj kompilator zamknięcia Google:
http://code.google.com/closure/compiler/docs/gettingstarted_ui.html
źródło
Po prostu połącz pliki tekstowe, a następnie użyj czegoś takiego jak kompresor YUI .
Pliki można łatwo łączyć za pomocą polecenia,
cat *.js > main.js
a plik main.js można następnie uruchomić przez kompresor YUI za pomocąjava -jar yuicompressor-x.y.z.jar -o main.min.js main.js
.Aktualizacja, sierpień 2014
Teraz przeszedłem na używanie Gulp do konkatenacji i kompresji javascript, ponieważ w przypadku różnych wtyczek i minimalnej konfiguracji możesz robić takie rzeczy, jak ustawianie zależności, kompilowanie coffeescript itp., A także kompresowanie JS.
źródło
Możesz to zrobić przez
include
ich wszystkich i wyślij do<script>
znacznikaźródło
include
tj. Nie rób <script src = "...."> linków do wielu plików, po prostu dołącz je do jednego elementu skryptu. Najlepiej byłoby użyć cdn wraz z odpowiednim buforowaniem.Zwykle mam to na
Makefile
:# All .js compiled into a single one. compiled=./path/of/js/main.js compile: @find ./path/of/js -type f -name "*.js" | xargs cat > $(compiled)
Następnie biegniesz:
Mam nadzieję, że to pomoże.
źródło
Używam tego skryptu powłoki w systemie Linux https://github.com/eloone/mergejs .
W porównaniu z powyższymi skryptami ma tę zaletę, że jest bardzo prosty w użyciu, a dużym plusem jest to, że możesz wymienić pliki js, które chcesz scalić w wejściowym pliku tekstowym, a nie w wierszu poleceń, więc Twoja lista jest wielokrotnego użytku i nie musisz wpisywać go za każdym razem, gdy chcesz scalić pliki. Jest to bardzo przydatne, ponieważ będziesz powtarzać ten krok za każdym razem, gdy chcesz rozpocząć produkcję. Możesz także komentować pliki, których nie chcesz scalać na liście. Wiersz poleceń, który najprawdopodobniej wpiszesz, to:
A jeśli chcesz również skompresować wynikowy scalony plik:
Spowoduje to utworzenie
output-min.js
zminimalizowanego przez kompilator zamknięcia Google. Lub:Jeśli chcesz mieć określoną nazwę dla swojego zminimalizowanego pliku o nazwie
output.minified.js
Uważam, że jest to bardzo pomocne w przypadku prostej witryny internetowej.
źródło
Grupowanie skryptów przynosi efekt przeciwny do zamierzonego, należy je ładować równolegle za pomocą czegoś takiego jak http://yepnopejs.com/ lub http://headjs.com
źródło
Skopiuj ten skrypt do notatnika i zapisz jako plik .vbs. Przeciągnij i upuść pliki .js w tym skrypcie.
ps. Działa to tylko w oknach.
set objArgs = Wscript.Arguments set objFso = CreateObject("Scripting.FileSystemObject") content = "" 'Iterate through all the arguments passed for i = 0 to objArgs.count on error resume next 'Try and treat the argument like a folder Set folder = objFso.GetFolder(objArgs(i)) 'If we get an error, we know it is a file if err.number <> 0 then 'This is not a folder, treat as file content = content & ReadFile(objArgs(i)) else 'No error? This is a folder, process accordingly for each file in folder.Files content = content & ReadFile(file.path) next end if on error goto 0 next 'Get system Temp folder path set tempFolderPath = objFso.GetSpecialFolder(2) 'Generate a random filename to use for a temporary file strTempFileName = objFso.GetTempName 'Create temporary file in Temp folder set objTempFile = tempFolderPath.CreateTextFile(strTempFileName) 'Write content from JavaScript files to temporary file objTempFile.WriteLine(content) objTempFile.Close 'Open temporary file in Notepad set objShell = CreateObject("WScript.Shell") objShell.Run("Notepad.exe " & tempFolderPath & "\" & strTempFileName) function ReadFile(strFilePath) 'If file path ends with ".js", we know it is JavaScript file if Right(strFilePath, 3) = ".js" then set objFile = objFso.OpenTextFile(strFilePath, 1, false) 'Read entire contents of a JavaScript file and returns it as a string ReadFile = objFile.ReadAll & vbNewLine objFile.Close else 'Return empty string ReadFile = "" end if end function
źródło
Możesz użyć kompilatora Closure, jak sugeruje orangutancloud. Warto zwrócić uwagę, że tak naprawdę nie musisz kompilować / minimalizować JavaScript, powinno być możliwe po prostu połączenie plików tekstowych JavaScript w jeden plik tekstowy. Po prostu dołącz do nich w kolejności, w jakiej zwykle znajdują się na stronie.
źródło
Jeśli używasz PHP, polecam Minify, ponieważ łączy i minifikuje w locie zarówno dla CSS, jak i JS. Po skonfigurowaniu po prostu działa normalnie i dba o wszystko.
źródło
Możesz użyć KjsCompiler: https://github.com/knyga/kjscompiler Chłodne zarządzanie zależnościami
źródło
Możesz użyć skryptu, który zrobiłem. Potrzebujesz jednak JRuby, aby to uruchomić. https://bitbucket.org/ardee_aram/jscombiner (JSCombiner).
Cechą wyróżniającą to jest to, że obserwuje zmiany plików w javascript i automatycznie łączy je z wybranym przez Ciebie skryptem. Nie ma więc potrzeby ręcznego „budowania” skryptu javascript za każdym razem, gdy go testujesz. Mam nadzieję, że to ci pomoże, obecnie tego używam.
źródło
Może to wymagać trochę wysiłku, ale możesz pobrać mój projekt wiki typu open source z codeplex:
http://shuttlewiki.codeplex.com
Zawiera projekt CompressJavascript (i CompressCSS), który wykorzystuje projekt http://yuicompressor.codeplex.com/ .
Kod powinien być zrozumiały, ale sprawia, że łączenie i kompresowanie plików jest trochę prostsze - i tak dla mnie :)
Projekt ShuttleWiki pokazuje, jak go używać w zdarzeniu po kompilacji.
źródło