Введение в Webpack, часть 1
Тип Поста

Введение в Webpack, часть 1

Введение в Webpack, часть 1

Хорошей практикой в современной Web-разработке является применение инструментов, которые помогут упростить и ускорить процесс разработки, а также подготовить файлы проекта для боевого сервера.

Для этих целей, вы можете использовать такие системы для автоматизации задач, как Grunt или Gulp, создавая цепочку таких преобразования, которые, например, минимизируют ваш CSS или JavaScript код, соединять в единый файл и т.д.

Подобные инструменты крайне популярны и очень полезны. Есть, тем не менее, другой способ произвести подобные действия, которые реализуется с помощью Webpack.

Именно об этом способе мы поговорим в статье.

Вторую часть статьи вы можете найти по ссылке:
Введение в Webpack, часть 2

Что такое Webpack?

Webpack можно охарактеризовать, как “сборщик модулей”. Он берет JavaScript модули с необходимыми зависимостями, и затем соединяет их вместе как можно более эффективным способом, на выходе создавая единый JS-файл. На первый взгляд – ничего особого, не так ли? Например, такие инструменты, как RequreJS позволяют делать подобные вещи вот уже много лет.

Весь трюк заключается вот в чем. Webpack не ограничен в использовании только JavaScript модулей. Применяя специальные Загрузчики, Webpack понимает, что JavaScript модулям могут потребоваться для их работы, например, CSS файлы, а им, в свою очередь, изображения. При этом, результат работы Webpack будет содержать только те ресурсы, которые действительно нужны для работы приложения.

Давайте произведем установку Webpack, чтобы посмотреть его работу в действии.

Установка Webpack

Как и большинству инструментов Web-разработчика, Webpack требует для своей работы установленный Node.js. Если Node.js у вас уже настроен, то все, что нужно сделать для установки Webpack – это выполнить следующую команду в консоли:

npm install webpack –g

Данная команда установит Webpack глобально в вашей системе, что позволит запускать его из любого места. Далее, внутри директории нашего проекта, создадим файл index.html с начальной разметкой:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <title>Webpack введение, часть 1</title>
</head>
<body>
  <h2></h2>

  <script src="bundle.js"></script>
</body>
</html>

Важной частью этого кода является ссылка на файл bundle.js, который будет содержать в себе результат работы Webpack. Также обратите внимание на пустой элемент h2 – он нам пригодится позднее.

Теперь создадим пару файлов в корневой директории проекта. Имя первого файла будет main.js и он послужит входной точкой для приложения. Второй файл назовем, например, say-hello.js. В него мы поместим простой код модуля, который будет принимать имя человека, DOM-элемент и выводить приветственное сообщение.

// Файл say-hello.js

module.exports = function( name, element )
{
  element.textContent = 'Привет, ' + name + '!';
};

После того, как мы создали наш небольшой модуль, вызовем его из main.js. Сделать это очень просто:

var sayHello = require( './say-hello' );

sayHello( 'Иван Иванов', document.querySelector( 'h2' ) );

Если бы мы сейчас открыли в браузере наш HTML-файл, то никакого вывода сообщения не произойдёт, т.к. мы ни подключили файл main.js, ни произвели сборку зависимостей для браузера. Всё, что нам нужно сделать – это указать Webpack на main.js файл, чтобы он подтянул все зависимости. Если это сделать, то Webpack произведет сборку этих файлов в единый файл bundle.js, который мы сможем использовать в браузере.

Вернемся в терминал, и просто выполним такую команду:

webpack main.js bundle.js

Первый файл определяет начальную точку приложения, в которой Webpack будет искать все зависимости. Это сработает и в том случае, если в вызываемых зависимостях есть свои зависимости от других модулей – до тех пор, пока не подключатся абсолютно все необходимые модули. Таким образом, на выход получится один файл bundle.js со всем модулями.

После выполнения этой команды, в консоли должен быть, примерно, вот такой результат:

webpack-guide-01

Теперь откройте index.html в браузере, и вы увидите результат работы приложения.

Настройка Webpack

Как вы могли заметить, определять каждый раз входной и выходной файл для Webpack – это не слишком большое удовольствие. К счастью, Webpack прекрасно настраивается с помощью конфигурационного файла. Для этого создадим в корневой директории файл webpack.config.js со следующим содержимым:

module.exports = {
  // входная точка нашего приложения
  entry : './main.js',
  output: {
    // результат работы Webpack будет в файле с таким именем
    filename: 'bundle.js'
  }
};

После этого достаточно всего лишь ввести команду webpack и мы получим такой же результ.

Локальный сервер для разработки

Как известно, если что-то может быть автоматизировано, то почему этого не сделать? Пусть программа делает за нас всю рутинную работу, например, следит за изменениями в коде, и сама обновляет страницу в браузере. Давайте установим небольшой сервер для разработки, чтобы процесс создания программы проходил более эффективно. В терминале выполним команду установки:

npm install webpack-dev-server –g

А затем запустим сервер командой webpack-dev-server. Эта команда старует простой Web-сервер, который будет обслуживать текущую директорию нашего проекта. Откроем в браузере новую вкладку по ссылке http://localhost:8080/webpack-dev-server/, и, если всё сделано правильно, то мы увидим примерно следующее:

webpack-guide-02

Теперь у нас есть не только этот замечательный сервер, но и немного магии, благодаря которой, при любом изменении в коде приложения, будет произведена пересборка проекта и обновлена страница в браузере. И всё работает практически без какой-либо дополнительной настройки.

Попробуйте, например, изменить передаваемое имя в sayHello функцию, и вы увидите, как изменения немедленно происходят в окне браузера.

Загрузчики

Одной из самых важных особенностей Webpack, является возможность использовать Загрузчики. Загрузчики являются аналогами “задач” (tasks) в Grunt и Gulp. По существу, они принимают содержимое файлов, а затем преобразуют его необходимым образом и включают результат преобразования в общую сборку.

Например, нам бы хотелось использовать некоторые возможность ES2015 в нашем коде. ES2015 – это новая версия JavaScript, которая полностью не поддерживается в браузерах. Поэтому, нам необходимо использовать Загрузчик для трансформации нашего ES2015 кода в старый ES5, который работает во всех браузерах. Чтобы сделать это, мы будем использовать одни из самых популярных Загрузчиков – Babel, и в соответствии с инструкцией, установим его командой:

npm install babel-loader babel-core babel-preset-es2015 --save-dev

Но прежде не забудем инициализировать npm командой npm init.

После установки Babel, у нас будет не только Загрузчик, но и все нужные для работы зависимости, пресеты для ES2015, чтобы Babel знал тип JavaScript для преобразования. Теперь, когда Загрузчик установлен, нам необходимо указать Babel конфигурацию для его использования. Обновим файл webpack.config.js:

module.exports = {
  entry : './main.js',
  output: {
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      {
        test   : /\.js$/,
        exclude: /node_modules/,
        loader : 'babel',
        query  : {
          presets: [ 'es2015' ]
        }
      }
    ]
  }
};

В этом коде есть несколько важных вещей, на которые стоит обратить внимание. Строчка с кодом test: /\.js$/ является регулярным выражением, которым мы указываем применение данного Загрузчика только к .js файлам. Подобно этому, мы исключаем директорию node_modules с помощью кода exclude: /node_modules/. В строках кода loader и query всё ясно само по себе – используем загрузчик с именем Babel и применяем пресет для ES2015.

Остановим наш веб-сервер комбинацией клавиш Ctrl+C и снова выполним команду webpack-dev-server. Теперь протестируем работу Загрузчика и напишем немного ES6 кода. Изменим в файле main.js вызов модуля на присвоение возвращаемого результата в константу вместо переменной:

const sayHello = require( './say-hello' );

После сохранения, Webpack должен самостоятельно пересобрать наше приложение и обновить страницу в браузере. В результате, на первый взгляд, ничего не изменилось. Но если мы взглянем на содержимое файла bundle.js, то найдем, что написанный нами ES6 код преобразовался с помощью Babel в старый добрый JavaScript.

Во второй части…

В продолжении этой статьи, мы посмотрим на то, как использовать Webpack для обработки CSS и изображений, а также, как подготовить приложение для размещения его на боевом сервере.

Исходные коды проекта доступны по ссылке: https://github.com/sbogdanov108/webpack_guide

Вторую часть статьи вы можете найти по ссылке:
Введение в Webpack, часть 2

При создании статьи были использованы следующие источники:

Поделиться

9 комментариев

delorocasino-Inorgo Deloro Online Casino is een soortgelijk digitale speelomgeving dat zich focus op casinogangers die op zoek zijn naar een betrouwbare en intuïtieve omgeving voor hun online gokervaring https://delorocasino-33.vercel.app . Dit platform biedt een divers pakket aan gokspellen waaronder klassieke opties zoals roulette blackjack en kaartspellen maar ook actuele speelautomaten met aantrekkingskrachtige beloningssystemen. Voor Nederlandstalige spelers is dit een interessant optie aangezien nuttige details over Deloro Casino Nederland beschikbaar zijn voor wie zich geïnteresseerd is. Veel gokkers vragen zich hoe Deloro Online Casino betrouwbaar is vooral omdat de site wordt geassocieerd aan Deloro Casino Limited wat discussie over de legaliteit. Feedback wijken af maar veel gebruikers deelen online hun ervaringen waardoor interessanten een duidelijker overzicht krijgen van wat ze kunnen. Of het nu gaat om de efficiëntie van de uitkeringen of de kwaliteit van de opties de Deloro Casino review geeft vaak inzicht in de sterke en minder goede kenmerken. Een van de belangrijkste aspecten van Deloro Casino is de variatie aan speelautomaten die beschikbaar zijn ranging van live casino-spellen tot online speelautomaten met indrukwekkende animaties. Dit maakt het site interessant voor zowel beginners als professionele spelers die op zoek zijn naar afwisseling. Verder biedt de site meestal welkomstdbonussen en loyaliteitsbonussen wat spelers betere opties geeft om hun inzet te verhogen. De gemakkelijk te gebruiken bediening zorgt ervoor dat de registratie en gokken soepel gaat zonder dat speciale expertise benodigd wordt. Ook het feit dat veel gokkers onderzoek doen over de veiligheid van Deloro Casino duidt aan dat transparantie en klantondersteuning een prioriteit vormen. Betalingen worden volgens vele spelers efficiënt verzorgd wat een positieve factor is voor wie zijn gokken ernstig behandelt. Zo zorgt de site een harmonie tussen entertainment en praktische waarde wat belangrijk is voor een actuele online casino-ervaring. Deloro Casino is vooral aantrekkelijk voor casinogangers die waarde hechten aan een uitgebreid aanbod aan spellen en een intuïtief platform zonder dat ze zich hoeven te beperken tot klassieke Nederlandse casino’s. Wie zich onderzoekt wat Deloro Casino legaal is kan zich informatie dat veel gokkers hun feedback publiceren in Deloro Casino recensies waardoor de duidelijkheid toeneemt. Voor iemand die op zoek is naar een frisse benadering voor gevestigde gokplatforms biedt dit platform een moderne aanpak met actuele functies. Of je nu voorziet voor de live dealers of de automatische gokmachines de site pogt een harmonie te vinden tussen vermaak en betrouwbaarheid. Aan het slot van de week is het altijd verstandig om je eigen verificatie te doen maar voor wie een vertrouwde digitale speelervaring zoekt kan Deloro Casino een interessante keuze zijn.
chickenroad-tosmori De Chicken Road Game is een soort online game dat langzaam maar zeker bekender wordt onder gamblers die zoeken naar een combinatie van toeval en strategie https://chickenroad-163.onrender.com . Het website gevestigd als Chicken Road Game-spel verenigt elementen van een soort digitale race met gokken-elementen waardoor het een unieke ervaringen biedt die verschilt van met klassieke casino-spellen. Veelvuldig gokkers vragen zich of of dit een soort betrouwbare site is vooral omdat het gelinkt wordt aan digitale gokken en echte geldtransacties. Ondanks het spel vaak wordt verward met andere virtuele races zoals Chicken Run onderscheidt het het spel door zijn interactieve elementen en de mogelijkheid om met echte gelden te gokken. Het spel is essentieel om te onderstrepen dat de Chicken Road Game-spel zowel online als door middel van specifieke websites toegankelijk is maar dat spelers altijd moeten checken of ze te maken hebben met een soort veilige uitvoering. Of het nu gaat om een recensie van Chicken Road Game of een onderzoek naar de legitimiteit het spel trekt aandacht via zijn innovatieve benadering van gokken en spel. Een van de meest belangrijke kenmerken van het game is de dynamische race-omgeving waarin spelers hun geluk kunnen testen door te weddenschappen te plaatsen op de resultaat van hun digitale kip. Deze interactie maakt het niet enkel een vorm van digitale gambling maar ook een gemeenschappelijke ervaring want spelers kunnen volgen hoe andere scoren en hun kunnen connecten via gemeenschappelijke taken. Het platform biedt meestal verschillende weddingsopties en beloningssystemen waardoor het geschikt is voor ontspannen gokkers als eveneens voor diegenen die zoeken naar grotere risico’s en grotere winsten. De gebruiksvriendelijkheid en de rapide reactie van het game maken ervoor dat het een aantrekkelijke optie is voor iedereen die op zoek is een nieuwe manier om online te gokken. Bovendien wordt de Chicken Road Game-spel regelmatig geüpdatet waardoor er altijd nieuwe uitdagingen en spannende momenten te verwachten. Voor wie interesse heeft in een casino-ervaring met Chicken Road Game verstrekken het website een verfrissende variatie ten opzichte klassieke casino-spellen. Deze digitale variant van Chicken Road Game-spel lokt met name spelers aan die zoeken naar een speciale mix van geluk tactiek en communicatie zonder de klassieke casino-ervaring. Het is perfect voor wie bereits gewoond is met digitale races of online gokken maar eveneens voor nieuwkomers die een aangename en uitdagende wijze willen ontdekken om met reële gelden te gokken. Of je nu een recensie van Chicken Road Game leest of persoonlijk begint het biedt een verfrissende variatie in de wereld van online gokken. Echter net als bij iedere soort gokspel is het essentieel om bewust te zijn en hun persoonlijke grenzen te respecteren. Voor de juiste doelgroep kan dit een soort leuke en spannende tijdverdrijf zijn maar het is altijd verstandig om vooraf de betrouwbaarheid en veiligheid van het site te controleren. Uiteindelijk is het een fascinerende manier om digitale toeval te uitproberen zolang men bewust is van de risico’s.
spin-Fraume Hledate moderni a vtipne virtualni hernu ktere vam poskytne prvotřidni zazitek ze hry? V dane situaci byste bezpochyby soustředit svou pozornost k web spingranny https://spin-grannybonus.co.cz . Toto internetove casino se nedavno proměnilo v nesmirně oblibenym napřič sazkaři kteři voli bohatou nabidku slotů plus bezpečne prostředi. Primarni portal spingranny official site poskytuje intuitivni prostředi pro uzivatele ktere vyuzije stejně tak profesionalni hrači rovněz take naprosti začatečnici. V připadě ze vas osobně zajima vse vsechno zminěny poskytovatel prezentuje zdejsi důkladna spingranny recenze vam osobně poskytne veskere zadane podrobnosti. Kdyz se podivate na casino spingranny zblizka odhalime ze pravě laka zejmena na stědre premie a take svizne proplaceni peněz. Mnoho lokalnich sazkařů vyhledava spin granny casino hlavně kvůli lokalizovane asistenci jez nabizi edice spingranny czech. V ramci zdejsi spingranny casino review jsem zkoumali odolnost webu plus standard uzivatelskeho sluzeb při čemz vysledky byly nesmirně přesne. Pokud vas zajima spin granny česka verze stranek pochopite ze je zcela přizpůsobena i pro chytre zařizeni takze pro sebe vlastni nejlepsi hry lze vychutnat kdykoliv a vsude. Vsechna ferova spin granny review podtrhuje ze plus certifikace jsou uplnym jadrem. Casino spin granny přiklada velky prioritu pro bezpečnost soukromych udajů vlastnich klientů coz je fakt ktery byl důvod kvůli čemu si vytvořilo tuto důvěru v odvětvi. V připadě ze neustale vahate zda je recenze spingranny objektivni navrhujeme pro sebe system otestovat na sve kůzi. Kasinove portfolio představuje prvotřidni hry pochazejici od uznavanych tvůrců jez zaručuji rovny přistup a solidni sanci na vyhru. Spingranny prostě je perfektni destinaci pro člověka ktery vyzaduje mixu vzruseni a dobre zabavnych her. Nezapomeňte pro sebe před samotnym startem hry zkontrolovat aktualni akčni bonusy jez spin granny často měni pro sve věrne klienty. S danou strankou ziskate vstup k světovemu světu sazkovych her v němz je spokojenost uzivatele trvale na přednim mistě. Zkuste vlastni sance jestě v tento den a pote odhalte proč se zminěne herna stalo aktualnim favoritem napřič přiznivci online herni zabavy.
ZolamAbbbb I’ve been looking for a fast and objective news source covering the latest events in Egypt and the Middle East especially with everything going on right now. I found this website and I really liked their coverage and live updates. Thought I’d share it here for those interested: Check it out here Let me know what you think about it

Оставить комментарий

Вы можете использовать следующие HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Обязательно к заполнению