Gulp vs Webpack

Gulp vs Webpack

В про­фес­сио­наль­ном со­об­ще­стве не ути­ха­ют спо­ры, от­но­си­тель­но то­го, ка­кой ин­стру­мент ис­поль­зо­вать в ра­бо­те. Се­го­дня речь пой­дет о та­ких ин­стру­мен­тах, как Gulp и Webpack.

В по­след­нее вре­мя на­би­ра­ет обо­ро­ты ка­кая-то нездо­ро­вая иде­а­ли­за­ция ин­стру­мен­тов, в от­ры­ве от це­лей, за­дач и ко­неч­но­го ре­зуль­та­та. Ес­ли ты не ис­поль­зу­ешь ка­кой-то опре­де­лен­ный ин­стру­мент, зна­чит ты не про­фи. Ес­ли ис­поль­зу­ешь, доб­ро по­жа­ло­вать в клуб, и не важ­но, что в ре­зуль­та­те у те­бя по­лу­ча­ет­ся ка­каш­ка. Та­ко­го хо­ли­вар­но­го бу­ма, да­ле­ко­го от су­ти во­про­са, не бы­ло да­же во вре­ме­на «Photoshop vs Open Source». Скла­ды­ва­ет­ся впе­чат­ле­ние, что ин­стру­мент пер­во­сте­пе­нен, а не са­ма об­ласть, не ре­зуль­ти­ру­ю­щий про­дукт и это до­воль­но пе­чаль­но. На­ря­ду со стра­хом остать­ся без де­нег, у совре­мен­но­го веб-раз­ра­бот­чи­ка из Рос­сии и СНГ до­ба­ви­лась но­вая фо­бия - ис­поль­зо­вать НЕ трен­до­вый ин­стру­мент, в стра­хе уме­реть вме­сте с ним. Во­об­ще, в сво­их ви­део я не од­но­крат­но об­ра­щал ва­ше вни­ма­ние на то, что ес­ли кто-то го­во­рит, что ка­кой-то ин­стру­мент или тех­но­ло­гия уми­ра­ет - за­ду­май­тесь об объ­ек­тив­но­сти та­ких вы­во­дов. Бли­же к де­лу.

Итак, Gulp и Webpack. Ос­но­вы. Да­вай­те нач­нем с опре­де­ле­ний. Из­на­чаль­но, эти ин­стру­мен­ты по­зи­ци­о­ни­ру­ют­ся со­зда­те­ля­ми, как ин­стру­мен­ты для ре­ше­ния несколь­ко раз­ных за­дач. Webpack по­зи­ци­о­ни­ру­ет­ся, как мощ­ный ком­байн-банд­лер, пред­на­зна­чен­ный для удоб­ной раз­ра­бот­ки JS Application и од­но­стра­нич­ных при­ло­же­ний. Кро­ме то­го, он име­ет мно­же­ство по­лез­ных до­пол­не­ний для ре­ше­ния по­все­днев­ных за­дач - пре­про­цес­со­ры, кар­тин­ки и про­чее, ко­то­рые яв­ля­ют­ся лишь бо­ну­са­ми к ос­но­ве. Gulp - это таск-ра­нер, упро­ща­ю­щий жизнь, бла­го­да­ря ав­то­ма­ти­за­ции вы­пол­не­ния ка­ких-то ру­тин­ных за­дач. В прин­ци­пе, на этом мож­но бы­ло бы оста­но­вить­ся, ведь мы по­ня­ли из опре­де­ле­ний, что это раз­ные ин­стру­мен­ты и, в об­щем-то, они пред­на­зна­че­ны для раз­ных за­дач, ес­ли бы не од­но НО. По­че­му-то эти два ин­стру­мен­та ка­ким-то стран­ным об­ра­зом по­па­да­ют на один гра­фик в Google Trends и вы­зы­ва­ют бур­ле­ние в про­фес­сио­наль­ной сре­де, Webpack на­чи­на­ют ис­поль­зо­вать да­же там, где не сто­ит за­да­чи раз­ра­бот­ки при­ло­же­ния, в уго­ду трен­дам, а Gulp неспра­вед­ли­во при­чис­ля­ют к спис­ку ин­стру­мен­тов на вы­ми­ра­ние.

Да­вай­те раз­бе­рем ти­пич­ный сце­на­рий пе­ре­хо­да с Gulp на Webpack и фор­ми­ро­ва­ния мне­ния. На­чи­на­ю­щий раз­ра­бот­чик, по­няв ми­ро­устрой­ство веб-раз­ра­бот­ки, как об­ла­сти, сто­ит пе­ред вы­бо­ром - уй­ти в ди­зайн или углу­бить­ся в JS раз­ра­бот­ку. До­пу­стим, он вы­би­ра­ет JS, так как дан­ная об­ласть ему бли­же, на­чи­на­ет изу­чать ры­нок ин­стру­мен­тов и по­ни­ма­ет, что для про­фес­сио­наль­ной глу­бо­кой JS-раз­ра­бот­ки уже есть кру­той ин­стру­мент, ко­то­рый поз­во­лит ему ре­шить мас­су про­блем од­ним ма­хом. И этот ин­стру­мент, спра­вед­ли­во и без­ого­во­роч­но - Webpack. Стан­дарт ин­ду­стрии. Да­лее у на­ше­го раз­ра­бот­чи­ка по­яв­ля­ют­ся и дру­гие за­да­чи - ра­бо­та с изоб­ра­же­ни­я­ми, пре­про­цес­синг и так да­лее, и он на­чи­на­ет гру­стить и вспо­ми­нать ста­рый доб­рый Gulp. Од­на­ко, его пе­чаль про­дол­жа­ет­ся недол­го, ведь он узна­ет, что Webpack да­ет та­ки воз­мож­ность, окро­мя ра­бо­ты с JS, ин­стру­мен­ты для ре­ше­ния по­став­лен­ных за­дач. Те­перь есть все во­про­сы за­кры­ты. Но­вый оп­по­зи­ци­о­нер Gulp и но­вая бо­е­вая еди­ни­ца для хо­ли­ва­ра окон­ча­тель­но сфор­ми­ро­ва­лась, по­ло­жи­тель­ный опыт под­креп­лен. Те­перь этот пер­со­наж бу­дет на пра­во и нале­во про­па­ган­ди­ро­вать, на­сколь­ко крут его ин­стру­мент (а это, к сло­ву, дей­стви­тель­но так, ин­стру­мент дей­стви­тель­но крут для сво­их за­дач), охот­но ввя­зы­ва­ясь в спо­ры на фо­ру­мах и со­ве­то­вать свой ин­стру­мент да­же там, где он не ну­жен. Речь идёт о веб-ди­зайне и верст­ке. У нас эти по­ня­тия при­ня­то от­но­сить к раз­ным об­ла­стям, но по су­ти - это гра­ни од­ной спе­ци­а­ли­за­ции.

Не сто­ит за­бы­вать, что мир веб-раз­ра­бот­ки не де­лит­ся на чер­ное и бе­лое. Кро­ме об­ла­сти ди­зай­на и об­ла­сти про­грам­ми­ро­ва­ния в сфе­ри­че­ском ва­ку­у­ме, есть и дру­гие об­ла­сти. Это, в первую оче­редь, раз­ра­бот­ка ком­мер­че­ских про­ек­тов на CMS, за­каз­ная раз­ра­бот­ка, кон­вей­ер­ная раз­ра­бот­ка, огром­ный пласт ин­ду­стрии, не нуж­да­ю­щий­ся в Веб­па­ке, как пер­во­сте­пен­ном ин­стру­мен­те, ведь здесь не идет ре­чи о со­зда­нии при­ло­же­ний. Окро­мя ком­па­ний, ко­то­рые за­ни­ма­ют­ся со­зда­ни­ем SPA, ра­бо­та­ю­щие в ко­ман­де над од­ним един­ствен­ным про­ек­том, есть и дру­гие об­ла­сти, дру­гие рын­ки. И на­чи­на­ю­щие раз­ра­бот­чи­ки, ди­зай­не­ры, на­чи­тав­шись от­зы­вов, на­смот­рев­шись на трен­ды, фор­ми­ру­ют непра­виль­ное по­ни­ма­ние рын­ка ин­стру­мен­тов, на­чи­на­ют ис­поль­зо­вать не то, что им нуж­но, бо­ясь быть не ак­ту­аль­ны­ми, не совре­мен­ны­ми. И это ло­вуш­ка. Они ви­дят по­пуляр­ность ин­стру­мен­та, аб­со­лют­но не по­ни­мая при­ро­ды та­кой по­пуляр­но­сти и об­ла­сти при­ме­не­ния. Будь­те ра­цио­наль­ны, до­ро­гие дру­зья.

Сто­ит за­ме­тить, что Gulp луч­ше все­го ис­поль­зо­вать по его пря­мо­му на­зна­че­нию  - с по­мо­щью дан­но­го ин­стру­мен­та оп­ти­ми­зи­ро­вать хра­ни­ли­ще изоб­ра­же­ний, уда­лять ко­пии, вы­пол­нять ком­прес­сию, ав­то­ма­ти­зи­ро­вать ра­бо­ту с фай­ла­ми, ар­хи­ви­ро­вать ненуж­ные про да­те, ра­бо­ту с до­ку­мен­та­ми и их со­дер­жи­мым, про­грам­ми­ро­вать бэкап, де­лать тас­ки для unix-при­ло­же­ний и про­чая ав­то­ма­ти­за­ция ру­ти­ны, вклю­чая ра­бо­ту с веб-ре­сур­са­ми в ра­бо­чих про­ек­тах.

По­это­му до­ро­гие дру­зья, луч­ше ис­поль­зо­вать те ин­стру­мен­ты, ко­то­рые вам по ду­ше, при­ме­нять их по на­зна­че­нию и ра­бо­тать в свое удо­воль­ствие. Это все­го лишь ин­стру­мен­ты.

Все эти го­ды за­бав­но на­блю­дать, как пе­ри­о­ди­че­ски вы­хо­дят но­вые ин­стру­мен­ты, как вы­зы­ва­ют мас­су спо­ров, об­суж­де­ний, про­ро­чат смерть дру­гим тех­но­ло­ги­ям. Мне­ния, ос­но­ван­ные на циф­рах по­пуляр­но­сти. Са­мое луч­шее в дан­ной си­ту­а­ции – это не об­ра­щать вни­ма­ние на хо­ли­ва­ры и не вос­при­ни­мать все­рьез по­зи­цию фа­на­ти­ков. Ес­ли вам не бу­дет хва­тать функ­цио­на­ла то­го или ино­го ин­стру­мен­та, у вас не бу­дет сто­ять во­про­са о вы­бо­ре дру­го­го.

Ори­ги­нал ста­тьи