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

Sanu0074
На сайте с 31.08.2012
Offline
110
411

Здравствуйте. Есть задача, на сайте подключено много скриптов (всяких кусков голого[ужас просто], целых либ, отдельных объектов). Нужно это все дело оптимизировать.

1. Необходимо все скрипты объединить в один большой скрипт

2. При этом нужно юзать какой-либо препроцессор (выбор падает на TypeScript)

3. При компилирования препроцессором выходной файл должен минифицироваться

4. В итоге, полученный большой файл, нужно использовать не целиком всегда, а на определенной странице только какую-то его часть. Например для страницы product создать класс product и юзать только его и события кот в нем определены, но на странице account все что в product не должно вызываться и не должны срабатывать бинды т.к. для account есть свой класс.

5. Должна быть возможность собирать такой "большой" выходной файл из множества маленьких (юзать всякие include), например чтобы каждый класс (или интерфейс) описать в отдельном файле.

6. По возможности не должно быть много трудности для перехода сайта из того состояния как я описал выше в то которое хочется.

Подскажите, что мне для этого лучше использовать и как решить задачку?

p.s.

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

Ayavryk
На сайте с 11.10.2003
Offline
209
#1

Node.JS + Grunt

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
Sanu0074
На сайте с 31.08.2012
Offline
110
#2

Ayavryk, а как node.js будет использоваться на сайте на котором он не может быть? p. s. нужно только компилировать скрипты

Ayavryk
На сайте с 11.10.2003
Offline
209
#3

А вы прямо на боевом сервере все делаете????

NodeJS позволяет выполнить любой shell. Можете подсоединиться со своего комп к серверу по ssh, скачать что надо объединить и закачать обратно.

Вообще если поковыряться наверняка найдутся ssh-библиотеки для самого Node

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий