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

39

Click here to load reader

Upload: -

Post on 20-Mar-2017

307 views

Category:

Education


0 download

TRANSCRIPT

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

WebpackЧеловеческий подход к разработке

веб-приложений1

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

О чем расскажу?

- Что такое webpack?- Что умеет?- Как работает?- Use cases- Мне все понравилось. Куда смотреть дальше?

2

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

Что такое webpack?

3

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

Что такое webpack?

4

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

Что умеет?

5

- сборка модулей и их зависимостей в один пакет- сборка модулей в один пакет- сборка с асинхронной загрузкой дополнительных

бандлов- преобразование кода/оптимизация кода

- sass/less/postcss- coffeescript/TypeScript/ES6/whatewerelse..

- удобная разработка- сервер для разработки- hot-reload

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

6

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

7

Да даже в паскале есть юниты!

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

А что в JS?

8

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

9

Эволюция модульного подхода в JS

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

10

Сначала мы писали вот так

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

11

Object literal

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

Module pattern

12

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

RequireJS (AMD)

13

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

CommonJS

14

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

ES6 Modules

15

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

Что умеет

16

- сборка всех зависимостей в один файл- сборка с несколькими точками входа (non-SPA)- сборка с несколькими точками входа с асинхронной загрузкой- выделение общих модулей- оптимизация упаковки

- DedupePlugin- UglifyjsPlugin- DefinePlugin

- hot reload

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

Source code

17

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

Index.js

18

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

Определяем точку входа

19

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

Запускаем webpack

20

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

Сборка в один файл. Bundle

21

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

Что умеет

22

- сборка всех зависимостей в один файл- сборка с несколькими точками входа (non-SPA)- выделение общих модулей- сборка с несколькими точками входа с асинхронной загрузкой- оптимизация упаковки

- DedupePlugin- UglifyjsPlugin- DefinePlugin

- hot reload

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

Сборка в несколько файлов

23

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

Выделение общих модулей

24

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

Что умеет

25

- сборка всех зависимостей в один файл- сборка с несколькими точками входа (non-SPA)- выделение общих модулей- сборка с несколькими точками входа с асинхронной загрузкой- оптимизация упаковки

- DedupePlugin- UglifyjsPlugin- DefinePlugin

- hot reload

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

Сборка с асинхронной загрузкой доп модулей

26

AMD синтаксис

require.ensure

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

27

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

Что умеет

28

- сборка всех зависимостей в один файл- сборка с несколькими точками входа (non-SPA)- выделение общих модулей- сборка с несколькими точками входа с асинхронной загрузкой- оптимизация упаковки

- DedupePlugin- UglifyjsPlugin- DefinePlugin

- hot reload

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

Оптимизация кодаUglifyJsPlugin - обфускация + минификация кода, DedupePlugin

29

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

Что умеет

30

- сборка всех зависимостей в один файл- сборка с несколькими точками входа (non-SPA)- выделение общих модулей- сборка с несколькими точками входа с асинхронной загрузкой- оптимизация упаковки

- DedupePlugin- UglifyjsPlugin- DefinePlugin

- hot reload

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

Hot reload

31

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

Как работает? webpack.config.js

32

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

Как работает?

33

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

Все очень просто

34

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

Загрузчики Плагины

35

sass-loader

less-loader

css-loader

file-loader

coffee-loader

babel-loader

promise-loader

ExtractTextPlugin

DedupePlugin

UglifyJsPlugin

DefinePlugin

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

Загрузчики

36

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

Плагины

37

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

Мне все понравилось. Куда смотреть дальше?

Официальный сайт http://webpack.github.io

Курс от Ильи Кантора https://www.youtube.com/playlist?list=PLDyvV36pndZHfBThhg4Z0822EEG9VGenn

"Webpack: 7 бед — один ответ" Денис Измайловhttps://www.youtube.com/watch?v=kuXIgUsvpLo

Владимир Кузнецов, Graph | Глубокое погружение в webpackhttps://www.youtube.com/watch?v=IpCrjoDPrQQ

Angular + webpackhttp://angular-tips.com/blog/2015/06/using-angular-1-dot-x-with-es6-and-webpack/https://github.com/Foxandxss/angular-webpack-workflow (склонируй и используй)

38

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

Спасибо за внимание!

39

[email protected]@krvital