Webpack vs Gulp, внятно и понятно. Или для чего мне еще один мощный инструмент?
Доброго времени! :)
Не могу окончательно решить, нужно ли мне использовать webpack с gulp или вовсе, только webpack.
Везде читаю насколько крут webpack, но до сих пор я не осознал его возможностей, которые бы затмили к примеру gulp, или для чего бы использовать его в связке с gulp, ведь раньше я так полюбил простоту и скорость gulp (в сравнении с grunt).
Какие фишки есть в webpack, которые мне очень нужны и я влюблюсь после этого в webpack, если я о них узнаю? :)
Так же, как я понял, webpack не замена таскерам, а какой то бандлер.
Кто может объяснить: для чего же нужен webpack?
Вопросов огромная куча, с каждым поиском ответов их становится чуточку больше и я только вникаю в процесс работы с webpack, но и близко не приближаюсь к осознаю того, для чего же он мне так нужен?
Спасибо! :))
нужно ли мне использовать webpack с gulp или вовсе, только webpack
webpack - бандлер, который собирает модули. В модули могут входить как js-ки так и css-ки, шаблоны всякие и т.д. и webpack умеет все это бандлить в один такой жирный бандл (или разделять их по умному или еще чего). И все. На этом его зона ответственности заканчивается. Но что же остается тас раннерам в таком случае?
Да собственно для простых проектов и ничего. Для проектов посложнее - запуск тестов, различные рутинные действия... словом какие-то таски. Например gulp deploy, gulp build который после бандлинга сделает нам билд всего и все в tar.gz и еще и запустит тесты. Ну и т.д.
Есть конечно "плагины" для webpack добавляющие функциональность таск раннеров но как по мне это уже перебор.
имхо очередное хипстерское (nodejs) веяние.
Каждый год, стабильно, весь мир "внезапно" осознает что их текущий инструмент (выпущенный год назад) стал слишком "фу фу фу", и нужно срочно запилить что-то новое, чтобы все сказали "ах".
Подождем пока лет 5, пока всё это устаканится, и сформируется нормальный стек технологий для разработки.
И такое мнение встречал на просторах, но как то слишком субъективно. :)
Факты убедительнее для того, чтобы самому решить, стоит ли он времени на изучение.
Вячеслав Лебедев:
>Факты убедительнее для того, чтобы самому решить, стоит ли он времени на изучение.
Какие факты? Что это очередная поделка, от тех кто мыслит как на картинке ниже?
Я пользуюсь gulp. В свое время стоял выбор между gulp и grunt, мне по духу больше пришелся gulp.
Менять его на что-то новое... зачем? Он полностью устраивает по своему функционалу.
А менять инструмент только ради моды... ну вам виднее.
D' Normalization: я тоже был примерно такого же мнения, webpack смотрится слегка противоестественно. Но по итогу я решил попробовать и пока доволен, так как он решил целую гору моих проблем со сборкой проектов.
Если у вас SPA, то полюбому нужны модули. А если есть модули - то лучше воспользоваться бандлерами. От gulp-а я к слову не отказался.
Сергей Протько: просто пока что gulp покрывает 100% моих потребностей. Для меня фронт разработка не является основной, поэтому мне мало что требуется от сборщика (тупо собрать js/css/картинки, прокинуть через препроцессоры и кинуть их в папку ассетов).
D' Normalization: ну я о том же говорю, инструмент надо выбирать под задачу. У меня например приложеньки на ангуляре, много разных, минимум сотенка JS файлов, надо как-то зависимости между ними ресолвить и т.д. И с gulp-ом было норм но как-то сложно поддерживать. Вводим нормальные модули - уже лучше. Вводим бандлеры - замечательно.
А для простого сайтика я бы webpack не брал конечно. Хотя сайтики разные бывают.
Вячеслав Лебедев: решает конечно, у меня все проекты на ES6 за последние пол года (чуть меньше пожалуй).
По "куче проблем" - у меня ангуляр приложение по структуре чуть отличается от той, которую можно увидеть в "полуофициальном" yoman генераторе. И под "чуть" я подразумеваю "сильно". Компонентный подход, модульность и т.д. То есть без грамотной системы модулей уже тяжко.
Пока спасало только то что в ангуляре есть свои модули, но иногда всеравно случаются косяки связанные с ресовом зависимостей и т.д.
Так же щаблоны. С gulp я собирал шаблоны в templateCache и не парился, с webpack я тупо импортирую их внутрь компонентов (шаблоны только для них) и далее с ними орудую. А так как я еще и jade использую то это все просто дико удобно.
Стили - делать стили модульными можно и так, но очень легко поддаться соблазну и сделать какую-нибудь зависимость. Да и со штуками типа css modules удобно использовать, правда я пока только пробовал и боюсь переходить на них.
webpack выдерет из core-js только те полифилы которые реально мне нужны (так как я явно прописал зависимость от оных). Это как бы и с другими бандлерами работает, тут просто преимущество бандлеров над тупой конкатенацией. С gulp (имею в виду без бандлинга) же мне пришлось бы подключать весь core-js или лепить кастыли.
Вячеслав Лебедев: модули ангуляра не нужны когда есть ES6 модули. Это рудимент. Благо сегодня вышел angular2 лишенный этого "недостатка". Но в былые времена да, это было удобно.
Сергей Протько: появились парочка попутных вопросов :) если будет не трудно ответить :)
Стили - какому препроцессору отдали предпочтение? или postcss?
core-js - это shim библиотечка как я понял? Т.е. те браузеры, которые могут работают на es6, а кто не может на полифиле, этакая замена babel компиляции?
Вячеслав Лебедев: стили - нет предпочтений. Нравится postcss то активно не использую (только автопрефиксер)
по core-js - это коллекция полифилов. Ну то есть это дополнительно к babel который только транспайлит. Недостающих функций и т.д. оно не добавит. А грузить весь набор полифилов при том что используется процентов 10 как-то не круто.