+ All Categories
Home > Technology > Unbundling the Future Web Runtime

Unbundling the Future Web Runtime

Date post: 22-Jan-2018
Category:
Upload: guy-bedford
View: 1,146 times
Download: 0 times
Share this document with a friend
39
The native integration of ES modules into the web JavaScript build tooling
Transcript
Page 1: Unbundling the Future Web Runtime

The native integration of ES modules into the web

JavaScript build tooling

Page 2: Unbundling the Future Web Runtime

SystemJS

Page 3: Unbundling the Future Web Runtime
Page 4: Unbundling the Future Web Runtime
Page 5: Unbundling the Future Web Runtime
Page 6: Unbundling the Future Web Runtime
Page 7: Unbundling the Future Web Runtime

Web Assembly

Page 8: Unbundling the Future Web Runtime
Page 9: Unbundling the Future Web Runtime

/page1.html /page2.html

ESM

Static import Dynamic import

ESM WASM

ESM ESMESM ESM

ESM

ESM

ESM

Page 10: Unbundling the Future Web Runtime

Build tools don’t have to be taken by surprise

We can already investigate this future

Page 11: Unbundling the Future Web Runtime

SystemJS Built on top of es-module-loader

Page 12: Unbundling the Future Web Runtime
Page 13: Unbundling the Future Web Runtime
Page 14: Unbundling the Future Web Runtime
Page 15: Unbundling the Future Web Runtime

Static import Dynamic import

ESM WASM

ESM ESMESM

ESM

ESM

/page1.html /page2.html

ESM

ESM ESM

Page 16: Unbundling the Future Web Runtime

Static import Dynamic import

System.register WASM

System.register

System.register

System.register

System.register

System.register

/page1.html /page2.html

System.register

System.register

System.register

Page 17: Unbundling the Future Web Runtime

IsomorphicModular Runtime

Page 18: Unbundling the Future Web Runtime

How is the native module loader useful?

Page 19: Unbundling the Future Web Runtime

The native module loader enables codesharing across pages and lazy loaded code

Page 20: Unbundling the Future Web Runtime

Optimization

Page 21: Unbundling the Future Web Runtime

/page1.html /page2.html

Static import Dynamic import

ESM WASM

ESM ESMESM

ESM

ESMESM

ESM ESM

Page 22: Unbundling the Future Web Runtime

x.js

y.js

Page 23: Unbundling the Future Web Runtime

x.js

Page 24: Unbundling the Future Web Runtime

/page1.html /page2.html

Static import Dynamic import

ESM WASM

ESM ESMESM

ESM

ESMESM

ESM ESM

Page 25: Unbundling the Future Web Runtime

Static import Dynamic import

ESM WASM

ESM ESMESM

ESM

ESM

/page1.html /page2.html

ESM

ESM ESM

Page 26: Unbundling the Future Web Runtime

Static import Dynamic import

WASM

ESM ESMESM

/page1.html /page2.html

ESM

ESM ESM

Page 27: Unbundling the Future Web Runtime

Static import Dynamic import

WASM

ESM ESMESM

/page1.html /page2.html

ESM

ESM ESM

Page 28: Unbundling the Future Web Runtime

x.js

y.js

z.js

Page 29: Unbundling the Future Web Runtime

xy.js z.js

Page 30: Unbundling the Future Web Runtime

Static import Dynamic import

WASM

ESM ESMESM

/page1.html /page2.html

ESM

ESM ESM

Page 31: Unbundling the Future Web Runtime

Static import Dynamic import

WASM

ESMESM

/page1.html /page2.html

ESM

ESM ESM

Page 32: Unbundling the Future Web Runtime

Output Generation

Page 33: Unbundling the Future Web Runtime

Static import Dynamic import

WASM

ESM ESMESM

/page1.html /page2.html

ESM

ESM ESM

Page 34: Unbundling the Future Web Runtime

ESM ESM

Static import Dynamic import

WASM

ESM

/page1.html /page2.html

ESM

Page 35: Unbundling the Future Web Runtime

Express optimization strategies

Visual tools for optimization management

Page 36: Unbundling the Future Web Runtime

Tree shaking Web Assembly

Automatically extract repeated functions

Module splitting

Page 37: Unbundling the Future Web Runtime

Fine-grained Module Graph

language compilers

ProductionModule Graph

Production Build Artefacts

optimizationsoutput

generation

Page 38: Unbundling the Future Web Runtime

Our tools should fully expose the module graph to cross-module optimizations.

This will allow for better performance optimization today, while also leading the way to native module workflows.

Page 39: Unbundling the Future Web Runtime

Thanks

@guybedford


Recommended