объединить файлы javascript в каталог с узлом uglify + смотреть?

Цель:

Я пытаюсь создать простой рабочий процесс для разработки шаблонов на стороне клиента.

Док Рут:

/views/uncompiled/
/static/js/compiled/

Мы начинаем в /views/uncompiled/

Здесь я могу что-то построить, например, /views/uncompiled/index.html.

Я создаю шаблоны dust.js, поэтому использую dusterjs также прослушивает изменения в моем каталоге /views/uncompiled/ и автоматически отображает скомпилированные *.js аналоги в моем каталоге /static/js/compiled/ .

Таким образом, /views/uncompiled/index.html отображает /static/js/compiled/index.js каждый раз, когда сохраняется изменение.

Проблема:

Мой layout.html становится больше. Мне нужно включать новый скрипт *.js каждый раз, когда я добавляю еще один шаблон:

<head>
    <script src='/static/js/compiled/index.js'></script>
    <script src='/static/js/compiled/header.js'></script>
    <script src='/static/js/compiled/footer.js'></script>
    <script src='/static/js/compiled/baconstrips.js'></script>
    ...
</head>

Решение:

Используйте другие часы в папке /static/js/compiled/, чтобы автоматически объединить *.js в один app.js, который всегда будет включен в мой <head> при каждом изменении содержимого этой папки:

<head>
    <script src='/static/js/app.js'></script>
</head>

Вопрос:

Я хотел бы использовать инструмент объединения, такой как Uglify.js, который также выполняет сжатие .

  • Существуют ли какие-либо пакеты узлов, которые автоматизируют вышеуказанное решение?
  • Есть ли встроенная функция Uglify.js, которая уже делает это?

person Dan Kanze    schedule 21.03.2013    source источник
comment
Uglifyjs уже выполняет сжатие, и в файле readme показано, как его можно вызывать из Node. Разве это не то, что вы ищете?   -  person mihai    schedule 22.03.2013
comment
@mihai Блок «Мой вопрос», я думаю, был немного искажен, но на самом деле я ищу решение в блоке «Решение».   -  person Dan Kanze    schedule 23.03.2013


Ответы (1)


Используйте grunt.js. Он имеет возможность просматривать/концентрировать/минимизировать ваши файлы с помощью различных дополнительных модулей. К этому нужно немного привыкнуть (я все еще остаюсь самим собой), но в итоге вы получите собственный процесс сборки, который работает так, как вы хотите, чтобы он работал, что бесценно.

person Nick Tomlin    schedule 22.03.2013
comment
Это именно то, что я искал. У меня есть для вас отличный дополнительный вопрос: stackoverflow.com/questions /15622116/grunt-js-watch-daemon - person Dan Kanze; 25.03.2013