Submit Search
Upload
MoscowJS 26 webpack presentation
•
Download as PPTX, PDF
•
0 likes
•
323 views
L
lgordey
Follow
Presentation about webpack on moscowJS
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 41
Download now
Recommended
Moscow js 26 webpack
Moscow js 26 webpack
lgordey
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
Омские ИТ-субботники
Как Webpack сделал меня счастливее
Как Webpack сделал меня счастливее
Yaroslav Serhieiev
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
Webpack integration
Webpack integration
Illia Zub
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Ontico
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
rit2011
Recommended
Moscow js 26 webpack
Moscow js 26 webpack
lgordey
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
Омские ИТ-субботники
Как Webpack сделал меня счастливее
Как Webpack сделал меня счастливее
Yaroslav Serhieiev
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
"Webpack: 7 бед — один ответ" — Денис Измайлов, MoscowJS 17
MoscowJS
Webpack integration
Webpack integration
Illia Zub
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Ontico
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
автоматизированная сборка Flash приложений (as2, as3). андрей жданов. зал 4
rit2011
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScript
Mikhail Davydov
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
JSib
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Ontico
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
JSib
#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов
JSib
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
Ontico
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
Drupal code sprint для новичков
Drupal code sprint для новичков
Ovadiah Myrgorod
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Yandex
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
Ovadiah Myrgorod
Ускорение фронтенда ponominalu.ru
Ускорение фронтенда ponominalu.ru
Денис Сергеевич Басковский
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
Ontico
#13 "Управление состоянием в Redux" Роман Сальников
#13 "Управление состоянием в Redux" Роман Сальников
JSib
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
Vue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людей
Konstantin Komelin
Николай Сиварев "Приручая сайты"
Николай Сиварев "Приручая сайты"
Yandex
NPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Denis Latushkin
Sql server clr integration
Sql server clr integration
Alex Tumanoff
Hey webpack
Hey webpack
Andrew Makarow
Bundle your modules with Webpack
Bundle your modules with Webpack
Jake Peyser
More Related Content
What's hot
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScript
Mikhail Davydov
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
JSib
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Ontico
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
JSib
#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов
JSib
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
Ontico
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
Drupal code sprint для новичков
Drupal code sprint для новичков
Ovadiah Myrgorod
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Yandex
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
Ovadiah Myrgorod
Ускорение фронтенда ponominalu.ru
Ускорение фронтенда ponominalu.ru
Денис Сергеевич Басковский
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
Ontico
#13 "Управление состоянием в Redux" Роман Сальников
#13 "Управление состоянием в Redux" Роман Сальников
JSib
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
CodeFest
Vue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людей
Konstantin Komelin
Николай Сиварев "Приручая сайты"
Николай Сиварев "Приручая сайты"
Yandex
NPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Denis Latushkin
Sql server clr integration
Sql server clr integration
Alex Tumanoff
What's hot
(20)
Dump-IT Загрузка и инициализация JavaScript
Dump-IT Загрузка и инициализация JavaScript
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
#5 "React.js" Антон Артамонов
#5 "React.js" Антон Артамонов
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
Drupal code sprint для новичков
Drupal code sprint для новичков
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
Ускорение фронтенда ponominalu.ru
Ускорение фронтенда ponominalu.ru
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
#13 "Управление состоянием в Redux" Роман Сальников
#13 "Управление состоянием в Redux" Роман Сальников
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
Vue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людей
Николай Сиварев "Приручая сайты"
Николай Сиварев "Приручая сайты"
NPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Sql server clr integration
Sql server clr integration
Viewers also liked
Hey webpack
Hey webpack
Andrew Makarow
Bundle your modules with Webpack
Bundle your modules with Webpack
Jake Peyser
Webpack slides
Webpack slides
Андрей Вандакуров
Webpack
Webpack
DataArt
Los sistemas operativos
Los sistemas operativos
123abraha123
This keyword in java
This keyword in java
Hitesh Kumar
TIPOS DE FRANQUICIAS
TIPOS DE FRANQUICIAS
lisbeth1319
Super keyword in java
Super keyword in java
Hitesh Kumar
Le Hong Hoa - CV
Le Hong Hoa - CV
Le Hoa
Webpack DevTalk
Webpack DevTalk
Alessandro Bellini
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Marcin Gajda
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
Vladimir Malyk
Webpack Tutorial, Uppsala JS
Webpack Tutorial, Uppsala JS
Emil Öberg
Webpack Introduction
Webpack Introduction
Anjali Chawla
Webpack
Webpack
Raymond McDermott
Viewers also liked
(15)
Hey webpack
Hey webpack
Bundle your modules with Webpack
Bundle your modules with Webpack
Webpack slides
Webpack slides
Webpack
Webpack
Los sistemas operativos
Los sistemas operativos
This keyword in java
This keyword in java
TIPOS DE FRANQUICIAS
TIPOS DE FRANQUICIAS
Super keyword in java
Super keyword in java
Le Hong Hoa - CV
Le Hong Hoa - CV
Webpack DevTalk
Webpack DevTalk
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Webpack - Czym jest webpack i dlaczego chcesz go używać? - wersja krótka
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
Webpack Tutorial, Uppsala JS
Webpack Tutorial, Uppsala JS
Webpack Introduction
Webpack Introduction
Webpack
Webpack
Similar to MoscowJS 26 webpack presentation
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
drupalconf
Little Service in 2h
Little Service in 2h
Alexei Yuzhakov
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
PVasili
Cовременный станок верстальщика
Cовременный станок верстальщика
mcslayer
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Yandex
webpack: 7 бед - один ответ
webpack: 7 бед - один ответ
Denis Izmaylov
МАПО Лаба №1
МАПО Лаба №1
Олег Гудаев
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Andrey Rebrov
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
Yandex
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
Nikita Borzykh
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
oelifantiev
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Yandex
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Yandex
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
Denis Vasilyev
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Oleg Nenashev
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
Timur Shemsedinov
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Ontico
Yulia tsuba
Yulia tsuba
jurenites
Jiramania презентации @augspb
Jiramania презентации @augspb
Gonchik Tsymzhitov
Similar to MoscowJS 26 webpack presentation
(20)
Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
Little Service in 2h
Little Service in 2h
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
Cовременный станок верстальщика
Cовременный станок верстальщика
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
webpack: 7 бед - один ответ
webpack: 7 бед - один ответ
МАПО Лаба №1
МАПО Лаба №1
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
Истинный DevOps. Секрет 42.
Истинный DevOps. Секрет 42.
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Иван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизация
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)
Yulia tsuba
Yulia tsuba
Jiramania презентации @augspb
Jiramania презентации @augspb
MoscowJS 26 webpack presentation
1.
Немного черной магии webpack и
разоблачений Левченко Гордей Инженер-разработчик клиентских приложений Rambler&Co 1 g.levchenko@rambler-co.ru MoscowJS
2.
No problem 2
3.
3 План доклада 1. Коротко
о Webpack 2. Решение задачи
4.
Webpack 4
5.
Webpack • AMD &
СommonJS • Entry points • Webpack-dev-server • Hash • Chunk 5
6.
SVG SPRITE - SVGSTORE 6 <svg
xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="icon-arrow" viewBox="0 0 22 23"> </symbol> <symbol id="icon-close" viewBox="0 0 34 34"> </symbol> </svg> <svg class="icon"> <use xlink:href=“#icon-arrow" /> </svg> <svg class="icon"> <use xlink:href=“#icon-close" /> </svg>
7.
Варианты решения 1. Loaders 2.
Plugins 7
8.
Loader? Plugin? 8
9.
Loaders - что
это? • загрузка • преобразование 9
10.
Loaders - wtf??? 10 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
11.
Loaders - wtf??? 11 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
12.
Loaders - wtf??? 12 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
13.
Loaders - wtf??? 13 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
14.
Loaders - wtf??? 14 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
15.
Loaders - wtf??? 15 var
$ = require('jquery'); require('_lib/auth'); require('_lib/menu'); require('_lib/gallery'); require('_style/app.sass'); app.js
16.
Loaders - категории •
Basic • Packaging • Dialects • Styling • Templating 16
17.
Loaders - how
to write module.exports = function(source) { return source; }; module.exports = function(source, map) { this.callback(null, source, map); }; 17
18.
Loaders - config module:
{ loaders: [ { test: /.jade$/, loader: 'jade-loader' }, { test: /.json$/, loader: 'json-loader' }, … ] } 18
19.
Loaders - file-loader { test:
/.(png|jp?g|gif)$/i, loader: 'file?name=[name].[hash].[ext]' } 19 logo.png => logo.c21c79decca12.png
20.
Loaders - style-loader { test:
/.styl$/, loader: 'style-loader!css-loader!stylus-loader' } 20
21.
Plugins 21
22.
Plugins - что
это? 22 • apply • compiler • compilation
23.
Plugins - main
sources 23 • Compiler • Compilation
24.
Plugins - Compiler •
Сконфигурированная среда webpack • Доступ к этапам компиляции 24
25.
Plugins - Compiler 25
26.
26 Plugins - interface
types function HelloWorldPlugin(options) { // Setup the plugin instance with options... } HelloWorldPlugin.prototype.apply = function(compiler) { compiler.plugin('done', function() { console.log('Hello World!'); }); }; module.exports = HelloWorldPlugin;
27.
27 Plugins - interface
types run compile compilation emit done load modules optimize modules optimize chunks hashed
28.
Plugins - Compilation 28 •
Single build
29.
Plugins - Compilation 29
30.
compiler.plugin('emit', function(compilation, callback)
{ for (var filename in compilation.assets) { filelist += ('- '+ filename +'n'); } compilation.assets['filelist.md'] = { source: function() { return filelist; }, size: function() { return filelist.length; } } callback(); }); 30 Plugins - how to write
31.
32.
Задача 32
33.
Задача - требования •
Минификация svg • Сборка нескольких спрайтов • Добавление собранных спрайтов в манифест 33
34.
Manifest.json “app.css": “e387d110eeab67b8s1r.app.css", “app.js”: "809f329c512f0b75a7f.app.js", 34
35.
Задача - svg
спрайты • Создание спрайта • Добавление в compilation.assets 35
36.
compiler.plugin('emit', function(compilation, callback)
{ compilation.assets[mySpriteName] = { source: function() { return source; }, size: function() { return source.length; } }; callback(); }); Задача - svgstore 36
37.
37
38.
Вывод • Изучение возможностей
инструмента • Поиск решения • Возможные варианты реализации 38
39.
Заключение • Webpack • Изучаем
документацию • Ставим pull requests • Делаем вклад в OpenSource 39
40.
40
41.
Спасибо за внимание! Вопросы? levchenko.gordey@gmail.com https://github.com/lgordey 41 http://lgordey.github.io/
Download now