webpackpackyourweb - apistek comparison browserify vs webpack...

49
Webpack pack your web Ly Cheng Modern Web 2015

Upload: others

Post on 25-Sep-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Webpack pack your web

Ly Cheng

Modern Web 2015

Page 2: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

LY

yhsiang

lyforever

Page 3: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

國會無雙

市⻑⾧長給問

Page 4: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

先調查⼀一下

Page 5: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Webpackmodule bundler

Page 6: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

https://twitter.com/mjackson/status/584227818910777345

Page 7: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

先講⼀一段故事

Page 8: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

<script src=‘jquery.js’></script><script src=‘app.js’></script>

Uncaught Referencer Error jQuery is not defined

Page 9: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

https://markb4.files.wordpress.com/2013/05/and-then-what-happened.jpeg

Page 10: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

CommonJS vs AMD

Server-side reuse vs Parallel loading

Page 11: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

CommonJS AMD

Works in the browser

without build

http://pichost.me/1835208/

Page 12: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

But

Finally, you have to build sth.

Page 13: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

ES6 Harmony

not ready for native browser

Page 14: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Not Only Javascript

css, images, fonts, html ….

Page 15: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Assets pipeline

In Rails, but now …

Page 16: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

http://fccowasso.com/wp-content/uploads/2013/09/hope.jpg

Page 17: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

http://webpack.github.io/

Page 18: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Webpack hasCode Splitting

LoadersPlugins

Hot Module Replacement

Page 19: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

http://webpack.github.io/docs/comparison.html

ComparisonBrowserify vs Webpack

blog.namangoel.com/browserify-vs-webpack-js-drama

Page 20: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Basic Usage

Page 21: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

ConfigurationCLI and webpack.config.js

Page 22: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

plugins devtooltarget

Page 23: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

loaderspreprocess fileshttp://webpack.github.io/docs/loaders.html

Page 24: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

loaderspreprocess files

http://webpack.github.io/docs/loaders.html

pre-* / loaders / post-*

Page 25: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

File loaderfilename template

http://webpack.github.io/docs/loader-conventions.html

url-loader, json-loader …

Page 26: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

pluginsmake webpack flexible

Page 27: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Extract-textextract inline css to files

Page 28: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Code splittingload on demand

idea from GWT

Page 29: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

CommonJS: require.ensure

AMD: require

Page 30: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

{c, d} will be an additional chunk.

Page 31: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Stylesheets

Page 32: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

require csscreate style element

inline cssextract-text-plugin

css files

Page 33: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Shimming modules

Page 34: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

require("imports?$=jquery!./file.js")

var XModule = require("exports?XModule!./file.js")

Page 35: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Hot Module ReplacementLivereload for every module

Page 36: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

http://webpack.github.io/docs/hot-module-replacement-with-webpack.html

Page 37: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Entrywebpack-dev-server/client?

http://localhost:2992webpack/hot/only-dev-server

Plugins new

webpack.HotModuleReplacementPlugin()

Page 38: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Webpack analyze

Page 39: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

http://webpack.github.io/analyse/

Page 40: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama
Page 41: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Webpack 2webpack/concord

Page 42: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

How We Use Webpack

Page 43: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Build with Reactwatchout-tw/prototype-seed

Page 44: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Directory Structurecomponent-based, SUITCSS

Page 45: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

How about API

Page 46: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Proxy serverwebpack-dev-server and express

use proxy option now!

Page 47: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Special thank to @tomchentw

Page 48: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Thank you

Page 49: Webpackpackyourweb - Apistek Comparison Browserify vs Webpack blog.namangoel.com/browserify-vs-webpack-js-drama

Recommendations

https://github.com/petehunt/webpack-howtowebpack-howto

https://github.com/webpack/react-starterreact-starter