LINUX.ORG.RU

Сборщик для javascript

 


0

1

Подскажите плз. существует ли готовое решение обеспечивающее следующий функционал:

1. Сборка модулей javascript в общий файл с удалением форматирования и комментариев, опционально замена имен на 1-2 буквенные сочетания.

2. Препроцессор с поддержкой условной «компиляции», констант и предопределенных констант __LINE__, __FILE___ etc.

3. Сам инструмент не использует java и javascript. Лучше всего если он сделан на С/С++, в крайнем случае Lua или Питон.

это минимальный набор требований.

Неплохо если попутно этот инструмент сможет обеспечить согласованную обработку css/html/php файлов в плане замены имен css классов/идентификаторов


Мой выбор: Jinja2+jsmin

Goury ★★★★★
()

Стандартная ошибка постановки вопроса.

Ты хочешь сделать А, ты не знаешь, как это сделать, но думаешь, что лучше всего это сделать через Б. Описываешь требования к тому, как себя (по твоему) должно вести Б и спрашиваешь, как этого достичь и где такое Б найти.

Так вот, это неправильно. Ты лучше опиши задачу, которую ты пытаешься решить. Откуда такие странные ограничения?

ChALkeR ★★★★★
()

Сам инструмент не использует java и javascript

Это твоя левая пятка так хочет?

no-such-file ★★★★★
()
Ответ на: комментарий от ChALkeR

Для каждого проекта или группы связанных проектов, я использую отдельную виртуальную машину на которой максимально точно (насколько возможно) воспроизводится рабочая среда реального веб-сервера. На моих веб серверах нет и вряд ли когда нибудь будет java и javascript. А если и будет то не на всех.

Ushenin
() автор топика
Ответ на: комментарий от Ushenin

Почти всегда окружение для разработки отличается от прод окружения. Это норм.

anonymous
()

Хардкор

склеивание - чем сам хочешь (ant в ввиду 2го инструмента). минификация - google closure compiler или yahoo ui compressor (обое на java)

ZuBB ★★★★★
()
Последнее исправление: ZuBB (всего исправлений: 2)

Не хардкор

любой из списка инструментов (но все они написаны на JS; клеить умеет любой; минификация через отдельный тул, который подключается через соответствующий плагин): grunt, gulp, broccoli (на самом деле их есть туева хуча) или последний писк моды — webpack.

минификаторы: jsmin, yahoo, gcc, uglify.js, uglify2.js. возм есть еще какието более-менее известные

как-то так

ZuBB ★★★★★
()
Последнее исправление: ZuBB (всего исправлений: 1)

Напиши сам </thread>

Kilte ★★★★★
()
Ответ на: комментарий от Ushenin

На моих веб серверах нет и вряд ли когда нибудь будет java и javascript. А если и будет то не на всех.

Результатов на твоих серверах тоже видимо не будет. Большинство инструментов для обработки яваскриптовых сорцов написано на яваскрипте, а оставшиеся - на яве :)

Vit ★★★★★
()

1. Если нет каких-то адских наворотов, можно взять gulp или grunt и через их плагины слепить все что надо.

2. https://github.com/mozilla/sweet.js - посмотри вот это, мопед не мой. Для совсем простых задач типа переклеить куски файлов в один может хватить и простых плагинов для gulp / grunt.

3. Успехов :)

Vit ★★★★★
()

webpack и избавляйся от детских глупостей. Зачем приложение собирать там где оно будет крутиться?

anonymous
()

не знаю, насколько подойдёт, но на питоне с Flask обалденно:
jinja2+pyjade - избавиться от гадкого html
webassets через flask-assets - всё остальное. Webassets поддерживают less компилятор, который есть на питоне.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)

Зачем тебе на серверах то явоскрипт склеивать? Поставь яву или ноду и склеивай на своем рабочем компе.

Int0l ★★
()

Спасибо всем кто отозвался, к сожалению ничего подходящего найти не удалось.

Для меня сейчас на первом месте не минификация, а препроцессор в стиле Си, хотя бы с минимальным функционалом.

В описаниях всевозможных тулзов для JS о препроцессоре, как правило, вообще не упоминается...

Не хотелось тратить свое время на эту, тривиальную задачу, но видимо придется, ну и ладно, сам сделаю, за одно организую обязательное предварительное объявление переменных, ненавижу автоматическое создание...

Ushenin
() автор топика

Возьми webpack и не пытайся сделать велосипед из костылей. У тебя будет иллюзия нормальных модулей и если этого мало — ещё и __filename. Номер строки тебе ничерта не даст с учётом минификации (а для дебага есть сорсмапы) и вообще бросай эту идиотскую привычку сишников.

3. Сам инструмент не использует java и javascript. Лучше всего если он сделан на С/С++, в крайнем случае Lua или Питон.

На моих веб серверах нет и вряд ли когда нибудь будет java и javascript.

Зато будет компилятор С, ага. Ты троллишь или реально не понимаешь, что в этом плохого?

x3al ★★★★★
()
Ответ на: комментарий от I60R

Интересная возможность: соответствующим образом настроенный Gradle-проект можно собрать на машине пользователя, на которой Gradle не установлен. Все, что требуется, — положить в дерево исходников 4 файла (которые Gradle сгенерирует для вас): 2 исполняемых для Win/*nix, 1 файл настроек и маленький jar. Всего на ~20Kb. После этого проект можно собрать на любой машине, где есть доступ к Сети. Скрипт сам позаботится о скачивании правильной версии Gradle, о настройке и запуске сборки.

Отсюда

I60R ★★
()

По хорошему, собирать фронтенд (как и бэкенд в случае C# или Java) нужно, конечно же, не на продакшен-серверах, но и не на рабочих станциях. Для этого должны быть отдельные билд-серверы, которые будут рулиться через CI.

static_lab ★★★★★
()
Ответ на: комментарий от Ushenin

Для меня сейчас на первом месте не минификация, а препроцессор в стиле Си, хотя бы с минимальным функционалом.

В sprockets require работает почти как include сишного препроцессора.

Anatolik ★★
()
Последнее исправление: Anatolik (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.