SlideShare a Scribd company logo
Webpack
Человеческий подход к разработке
веб-приложений
1
О чем расскажу?
- Что такое webpack?
- Что умеет?
- Как работает?
- Use cases
- Мне все понравилось. Куда смотреть дальше?
2
Что такое webpack?
3
Что такое webpack?
4
Что умеет?
5
- сборка модулей и их зависимостей в один пакет
- сборка модулей в один пакет
- сборка с асинхронной загрузкой дополнительных
бандлов
- преобразование кода/оптимизация кода
- sass/less/postcss
- coffeescript/TypeScript/ES6/whatewerelse..
- удобная разработка
- сервер для разработки
- hot-reload
6
7
Да даже в паскале есть юниты!
А что в JS?
8
9
Эволюция модульного подхода в JS
10
Сначала мы писали вот так
11
Object literal
Module pattern
12
RequireJS (AMD)
13
CommonJS
14
ES6 Modules
15
Что умеет
16
- сборка всех зависимостей в один файл
- сборка с несколькими точками входа (non-SPA)
- сборка с несколькими точками входа с асинхронной загрузкой
- выделение общих модулей
- оптимизация упаковки
- DedupePlugin
- UglifyjsPlugin
- DefinePlugin
- hot reload
Source code
17
Index.js
18
Определяем точку входа
19
Запускаем webpack
20
Сборка в один файл. Bundle
21
Что умеет
22
- сборка всех зависимостей в один файл
- сборка с несколькими точками входа (non-SPA)
- выделение общих модулей
- сборка с несколькими точками входа с асинхронной загрузкой
- оптимизация упаковки
- DedupePlugin
- UglifyjsPlugin
- DefinePlugin
- hot reload
Сборка в несколько файлов
23
Выделение общих модулей
24
Что умеет
25
- сборка всех зависимостей в один файл
- сборка с несколькими точками входа (non-SPA)
- выделение общих модулей
- сборка с несколькими точками входа с асинхронной загрузкой
- оптимизация упаковки
- DedupePlugin
- UglifyjsPlugin
- DefinePlugin
- hot reload
Сборка с асинхронной загрузкой доп модулей
26
AMD синтаксис
require.ensure
27
Что умеет
28
- сборка всех зависимостей в один файл
- сборка с несколькими точками входа (non-SPA)
- выделение общих модулей
- сборка с несколькими точками входа с асинхронной загрузкой
- оптимизация упаковки
- DedupePlugin
- UglifyjsPlugin
- DefinePlugin
- hot reload
Оптимизация кода
UglifyJsPlugin - обфускация + минификация кода, DedupePlugin
29
Что умеет
30
- сборка всех зависимостей в один файл
- сборка с несколькими точками входа (non-SPA)
- выделение общих модулей
- сборка с несколькими точками входа с асинхронной загрузкой
- оптимизация упаковки
- DedupePlugin
- UglifyjsPlugin
- DefinePlugin
- hot reload
Hot reload
31
Как работает?
webpack.config.js
32
Как работает?
33
Все очень просто
34
Загрузчики Плагины
35
sass-loader
less-loader
css-loader
file-loader
coffee-loader
babel-loader
promise-loader
ExtractTextPlugin
DedupePlugin
UglifyJsPlugin
DefinePlugin
Загрузчики
36
Плагины
37
Мне все понравилось. Куда смотреть дальше?
Официальный сайт http://webpack.github.io
Курс от Ильи Кантора
https://www.youtube.com/playlist?list=PLDyvV36pndZHfBThhg4Z0822EEG9VGenn
"Webpack: 7 бед — один ответ" Денис Измайлов
https://www.youtube.com/watch?v=kuXIgUsvpLo
Владимир Кузнецов, Graph | Глубокое погружение в webpack
https://www.youtube.com/watch?v=IpCrjoDPrQQ
Angular + webpack
http://angular-tips.com/blog/2015/06/using-angular-1-dot-x-with-es6-and-webpack/
https://github.com/Foxandxss/angular-webpack-workflow (склонируй и используй)
38
Спасибо за внимание!
39
kr.vital@gmail.com
@krvital

More Related Content

What's hot (20)

PDF
Актуальные технологии и тренды в веб-разработке
Denis Izmaylov
 
PDF
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
 
PPTX
Webpack integration
Illia Zub
 
PDF
#5 "React.js" Антон Артамонов
JSib
 
PDF
Микросервисная архитектура на базе CoreOS и Kubernetes
Denis Izmaylov
 
PDF
Изоморфные React-приложения: производительность и масштабирование
Denis Izmaylov
 
PDF
Изоморфные react-приложения
Denis Izmaylov
 
PDF
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
 
PPTX
Redux и изоморфные приложения
John Wezel
 
PPTX
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
 
PDF
React.js – intro
Andrew Makarow
 
PDF
Максим Пугачев
CodeFest
 
PDF
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek
 
PPTX
Sql server clr integration
Alex Tumanoff
 
PDF
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
 
PPTX
Delivering Native User Experience In Client Side Java Applications
Nikita Lipsky
 
PPTX
Test driven development in net
Alex Tumanoff
 
PPTX
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 
PDF
Yaremchuk - Корпоративные сайты
Andrii Podanenko
 
Актуальные технологии и тренды в веб-разработке
Denis Izmaylov
 
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
 
Webpack integration
Illia Zub
 
#5 "React.js" Антон Артамонов
JSib
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Denis Izmaylov
 
Изоморфные React-приложения: производительность и масштабирование
Denis Izmaylov
 
Изоморфные react-приложения
Denis Izmaylov
 
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
 
Redux и изоморфные приложения
John Wezel
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
 
React.js – intro
Andrew Makarow
 
Максим Пугачев
CodeFest
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek
 
Sql server clr integration
Alex Tumanoff
 
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
 
Delivering Native User Experience In Client Side Java Applications
Nikita Lipsky
 
Test driven development in net
Alex Tumanoff
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 
Yaremchuk - Корпоративные сайты
Andrii Podanenko
 

Viewers also liked (16)

PPTX
DotNet MVC and webpack + Babel + react
Chen-Tien Tsai
 
PDF
Современный фронтенд за 30 минут.
Vladimir Malyk
 
PPTX
MoscowJS 26 webpack presentation
lgordey
 
PDF
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
 
PPTX
Webpack Introduction
Anjali Chawla
 
PDF
Bundle your modules with Webpack
Jake Peyser
 
PPTX
Webpack - просто о сложном
Tatiana Sakharova
 
PPTX
Los sistemas operativos
123abraha123
 
PPTX
This keyword in java
Hitesh Kumar
 
PPTX
TIPOS DE FRANQUICIAS
lisbeth1319
 
PPTX
Super keyword in java
Hitesh Kumar
 
PDF
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
 
DOC
Le Hong Hoa - CV
Le Hoa
 
PDF
Hey webpack
Andrew Makarow
 
PPTX
Flexbox - верстка без float'ов by Dmitry Radyno
Дмитрий Радыно
 
PDF
Webpack DevTalk
Alessandro Bellini
 
DotNet MVC and webpack + Babel + react
Chen-Tien Tsai
 
Современный фронтенд за 30 минут.
Vladimir Malyk
 
MoscowJS 26 webpack presentation
lgordey
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
 
Webpack Introduction
Anjali Chawla
 
Bundle your modules with Webpack
Jake Peyser
 
Webpack - просто о сложном
Tatiana Sakharova
 
Los sistemas operativos
123abraha123
 
This keyword in java
Hitesh Kumar
 
TIPOS DE FRANQUICIAS
lisbeth1319
 
Super keyword in java
Hitesh Kumar
 
Рендеринг может больше: vue.js vs React, Андрей Солодовников
DevDay
 
Le Hong Hoa - CV
Le Hoa
 
Hey webpack
Andrew Makarow
 
Flexbox - верстка без float'ов by Dmitry Radyno
Дмитрий Радыно
 
Webpack DevTalk
Alessandro Bellini
 
Ad

Similar to 2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб приложений (7)

PDF
Webpack для самых маленьких | Odessa Frontend Meetup #5
OdessaFrontend
 
PDF
Внутреннее устройство и оптимизация бандла webpack
Alexey Ivanov
 
PDF
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
PDF
NPM и модульная архитектура приложения
Denis Latushkin
 
PDF
RequireJS і Magento 2
Elogic Magento Development
 
PPTX
JavaScript-модули "из прошлого в будущее"
oelifantiev
 
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON
 
Webpack для самых маленьких | Odessa Frontend Meetup #5
OdessaFrontend
 
Внутреннее устройство и оптимизация бандла webpack
Alexey Ivanov
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
GeeksLab Odessa
 
NPM и модульная архитектура приложения
Denis Latushkin
 
RequireJS і Magento 2
Elogic Magento Development
 
JavaScript-модули "из прошлого в будущее"
oelifantiev
 
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON
 
Ad

More from Омские ИТ-субботники (20)

PDF
2017-08-12 01 Алексей Коровянский. Привет, ARKit!
Омские ИТ-субботники
 
PDF
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
Омские ИТ-субботники
 
PDF
2017-05-06 02 Илья Сиганов. Зачем учить машины?
Омские ИТ-субботники
 
PDF
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
Омские ИТ-субботники
 
PDF
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
Омские ИТ-субботники
 
PDF
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
Омские ИТ-субботники
 
PDF
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
Омские ИТ-субботники
 
PDF
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
Омские ИТ-субботники
 
PDF
2017-02-04 02 Яков Лило. Решение задач
Омские ИТ-субботники
 
PDF
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
Омские ИТ-субботники
 
PDF
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
Омские ИТ-субботники
 
PDF
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
Омские ИТ-субботники
 
PDF
2016-12-03 03 Евгений Тюменцев. DSL на коленке
Омские ИТ-субботники
 
PDF
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
Омские ИТ-субботники
 
PDF
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
Омские ИТ-субботники
 
PDF
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
Омские ИТ-субботники
 
PDF
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
Омские ИТ-субботники
 
PDF
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
Омские ИТ-субботники
 
PDF
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
Омские ИТ-субботники
 
PDF
2016-09-17 03 Василий Полозов. WebRTC
Омские ИТ-субботники
 
2017-08-12 01 Алексей Коровянский. Привет, ARKit!
Омские ИТ-субботники
 
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
Омские ИТ-субботники
 
2017-05-06 02 Илья Сиганов. Зачем учить машины?
Омские ИТ-субботники
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
Омские ИТ-субботники
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
Омские ИТ-субботники
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
Омские ИТ-субботники
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
Омские ИТ-субботники
 
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
Омские ИТ-субботники
 
2017-02-04 02 Яков Лило. Решение задач
Омские ИТ-субботники
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
Омские ИТ-субботники
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
Омские ИТ-субботники
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
Омские ИТ-субботники
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
Омские ИТ-субботники
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
Омские ИТ-субботники
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
Омские ИТ-субботники
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
Омские ИТ-субботники
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
Омские ИТ-субботники
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
Омские ИТ-субботники
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
Омские ИТ-субботники
 
2016-09-17 03 Василий Полозов. WebRTC
Омские ИТ-субботники
 

2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб приложений