JavaScript препроцессор (объединение, сжатие)

sanu0074

Новичок
Здравствуйте. Есть задача, на сайте подключено много скриптов (всяких кусков голого[ужас просто], целых либ, отдельных объектов). Нужно это все дело оптимизировать.
1. Необходимо все скрипты объединить в один большой скрипт
2. При этом нужно юзать какой-либо препроцессор (выбор падает на TypeScript)
3. При компилирования препроцессором выходной файл должен минифицироваться
4. В итоге, полученный большой файл, нужно использовать не целиком всегда, а на определенной странице только какую-то его часть. Например для страницы product создать класс product и юзать только его и события кот в нем определены, но на странице account все что в product не должно вызываться и не должны срабатывать бинды т.к. для account есть свой класс.
5. Должна быть возможность собирать такой "большой" выходной файл из множества маленьких (юзать всякие include), например чтобы каждый класс (или интерфейс) описать в отдельном файле.
6. По возможности не должно быть много трудности для перехода сайта из того состояния как я описал выше в то которое хочется.

Подскажите, что мне для этого лучше использовать и как решить задачку?
p.s.
Из много найденного, понравился TypeScript, но не уверен до конца в нем. Есть ли там инклуды чтоб по файлам все разбить? Умеет ли он сжимать код при компиляции (минифицировать)? И стоит ли его выбирать?
 

WMix

герр M:)ller
Партнер клуба
мне кажется сейчас все хорошо, а хочет сделать плохо... ну да в один файл наверно лучше phar
 

sanu0074

Новичок
gulp - вариант.
мне кажется сейчас все хорошо, а хочет сделать плохо...
такую задачу поставили. Но с точки зрению single page app все же желательно загрузить все скрипты сразу, вообще не хорошо подгружать их напрямую аяксом
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Вообще у тебя при компоновке "всего в один файл" есть одна положительная сторона, потом этот скрипт, при правильных настройках попадет в кеш браузера и тягаться больше с сервера не будет. Ну, а как ты там реализуешь нарезку кусков - вопрос открытый.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Он просто не знал про gulp наверное =)
 

fixxxer

К.О.
Партнер клуба
Typescript - это компилятор из языка typescript (который есть надмножество JS) в, собственно, стандартный JS (EcmaScript 5). Ничего больше там нет.

Для JS-либ замучаешься .d.ts-ы писать. Не, можно конечно в стиле declare var jQuery any, но это весь смысл тогда в TS теряется.

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

fixxxer

К.О.
Партнер клуба
Далеко не всё, да и его самописных "кусков ужаса" - точно нету
 
Сверху