Как стать автором
Обновить

Комментарии 11

Хм, а для gulp.js не какого-нибудь аналога grunt-concurrent?
А он и не нужен, gulp и так независимые задачи выполняет конкурентно.
Я очень давно мучаюсь со следующей проблемой:
есть таск build, перед ним должен выполниться таск clean. А за ним все остальные сборщики запускаются. Это понятно, иначе он снесет папку с уже чем-то скомпиленным вполне вероятно.
А зачастую нужно собрать один конкретный файл.
Допустим логика такая:
build -> [build-scripts, build-styles, build-html]
build-scripts -> [clean], fn
build-styles -> [clean], fn
build-html -> [clean], fn

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

Вот это основная проблема галпа: он не предназначен для повторного использования тасков по большому счету.
Хотя лучше него ничего нет все равно.
Возможно я не совсем понял проблему, но в чем сложность в тасках build-script/styles/html обновлять/сносить только то, что нужно, например, build-styles сносит только стили, а build-script только скрипты? Скажем, не использовать clean который сносит все, а разбить эту задачу на clean-style, clean-script, clean-html.
аэмм, ну это лишние таски, лишний гемморой и так далее. Да, так вроде бы абсолютно правильно, но просто больше пространства в сборщике съедает.
Не буду спорить, т.к. это дело вкуса и обстоятельств, просто для меня как-то проще и логичнее, когда каждый таск делает только свое дело, а уже потом из этих маленьких тасков строятся таски с расширенной функциональностью. Т.е. таск должен быть настолько простым, насколько это возможно, но не проще.
да я не спорю, сам задумался что так стоит делать :) но именно по простоте «снести папку» куда проще чем «снеси такие-такие-такие и такие файлы».
А, вот, сообразил, в чем есть ньюанс.
У меня периодически бывают подобные ситуации
src/tooltipster.css
src/style.sass

компилируются в
build/tooltipster.css
build/style.css

Все куда сложнее, но если вкратце — ситуация именно такая: есть неопределенный список расширений файлов на выходе, и если я собираю проект — я сношу их, в противном случае я хочу просто перезаписать. Объяснения дальше запутанные и сложные, но если вкратце — разносить по папкам типа assets/ не выйдет, постфиксы (типа style.sass.css) тоже не очень нравится как идея.
Есть же run-sequence. Плюс скоро в новой версии orchestrator обещают примерно такой же функционал без необходимости подобных костылей.
Обещают уже давно, а пока run-sequence выручает неимоверно.
а ещё можно просто сделать gulp.start('task_name') что бы не делать длинных цепочек callback-ов
например для того что бы сделать релиз нам нужен момер версии, в таком случае:
  gulp.task('build', ['version'], function(){
   ...
     gulp.start('build_true')
   ...
})

где build_true — обычный сборщик модулей.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории