Объединение CSS и JS перед сжатием? Инструменты? Лучшие практики? - PullRequest
3 голосов
/ 12 сентября 2009

Я работаю над одностраничным сайтом, который содержит около дюжины файлов .js и, возможно, полдюжины файлов .css.

Большинство файлов .js являются плагинами jQuery. Помимо базового CSS-файла, CSS-файлы предназначены для соответствующих плагинов jQuery.

YUI Compressor кажется фаворитом для сжатия файлов CSS и JS. Однако он сжимает только отдельные файлы.

Я также хотел бы объединить свои файлы и (в идеале) получить один файл .js и один файл .css (оба сжатые).

Существуют ли какие-либо предпочтительные инструменты, позволяющие автоматизировать объединение файлов .js и .css в один файл, чтобы его можно было запустить через компрессор YUI?

Ответы [ 5 ]

3 голосов
/ 12 сентября 2009

Если вы немного знаете, php, я считаю, что это лучший способ: http://www.thedanglybits.com/2007/06/21/minify-your-external-javascript-and-css-with-php/

2 голосов
/ 12 сентября 2009

Я задавал этот вопрос только на днях. После утомительного поиска в Интернете я нашел это хакерское решение (пакетный файл Windows).

@echo off
set TUNA_ROOT=C:\path\to\webroot
set YUI_COMPRESSOR_PATH=C:\path\to\yuicompressor-2.4.2\build
set TEMP_JS_FILE=%TUNA_ROOT%\scripts\all_scripts_temp.js
set OUTPUT_JS_FILE=%TUNA_ROOT%\scripts\tuna_min.js
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"
if exist "%OUTPUT_JS_FILE%" del "%OUTPUT_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
type "%TUNA_ROOT%\Scripts\MicrosoftMvcAjax.js" >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
echo. >> "%TEMP_JS_FILE%"
rem ...and so on...
java -jar "%YUI_COMPRESSOR_PATH%\yuicompressor-2.4.2.jar" -v --charset utf-8 -o "%OUTPUT_JS_FILE%" "%TEMP_JS_FILE%"
if exist "%TEMP_JS_FILE%" del "%TEMP_JS_FILE%"

но мне бы очень понравилось, если бы существовал более автоматизированный способ ведения дел.

2 голосов
/ 12 сентября 2009

Возможно, вы захотите проверить звездочки (http://www.getsprockets.com/).

1 голос
/ 14 сентября 2009

В итоге я наткнулся на эту опцию:

http://johannburkard.de/blog/programming/javascript/automate-javascript-compression-with-yui-compressor-and-packer.html

Это командный файл, который объединяет локальные версии конкатенации, YUI Compressor и Packer Дина Эдварда.

В конце концов, я не смог заставить Пакера работать локально. Это продолжало портить мой .js.

Итак, я пропустил эту часть, а затем пропустил мой сжатый код YUI через онлайн-упаковщик и только на 1% увеличил сжатие, поэтому просто опустил этап упаковщика.

В конце концов, мое решение использовало приведенные выше связанные инструкции со слегка измененным командным файлом:

введите .. \ js-in *> jb.js java -jar .. \ yui \ build \ yuicompressor-2.4.2.jar jb.js -o jb-yui.js

Спасибо за все другие (действительные) решения. Много хорошей информации!

0 голосов
/ 21 ноября 2010

Я использую этот сайт почти исключительно для сжатия моих файлов JS и CSS:
http://www.lotterypost.com/js-compress.aspx
http://www.lotterypost.com/css-compress.aspx

...