Slide 1

Slide 1 text

AngularͱWebpackͰ AoTίϯύΠϧ͢Δ·Ͱͷ࿩ Զͷ࿩Λฉ͚ʂʂLTେձ #2
 2017/04/26

Slide 2

Slide 2 text

ࣗݾ঺հ • ৽෱ ٓါ ʢShinpuku Noriyukiʣ • גࣜձࣾϨείʢچ: ϕʔλιϑτʣ • ϑϩϯτΤϯυେ޷͖ʂ
 https://github.com/puku0x

Slide 3

Slide 3 text

։ൃதͷϓϩμΫτ

Slide 4

Slide 4 text

എܠ • ϑϩϯτΤϯυपΓҰ৽͍ͨ͠ • Webpackಋೖ • AngularJS → Angular4΁

Slide 5

Slide 5 text

Webpack

Slide 6

Slide 6 text

Webpack 2.x • ґଘؔ܎ղܾͱม׵ˍ݁߹

Slide 7

Slide 7 text

Ҏલ࡞ͬͨ΋ͷ • npm + Webpack + PhoneGap ES5/CSS3 ʹม׵ https://github.com/puku0x/angularjs-onsenui2-webpack2

Slide 8

Slide 8 text

Angular

Slide 9

Slide 9 text

Angular 4.x • Google੡ͷMVˎϑϨʔϜϫʔΫ • AngularJSͱ͸ผ෺ (ƅЧƅ))
 ίϯϙʔωϯτࢦ޲ɺCSSΧϓηϧ ԽɺTypeScriptɺRxJS ɾɾɾ

Slide 10

Slide 10 text

͋Μ͗ΎΒʔͬͯ
 ஗͍ΜͰ͠ΐʁ

Slide 11

Slide 11 text

AoTʢAhead of Timeʣ • ࣮ߦલʹ੩తͳDOMੜ੒ίʔυʹ ίϯύΠϧ͢Δॲཧ • όϯυϧαΠζ͸ͪΐͬͱ૿͑Δ • ը໘දࣔΛߴ଎Խ

Slide 12

Slide 12 text

AoTͷઃఆʁʁ • ͳΜ͔೉ͦ͠͏…

Slide 13

Slide 13 text

@ngtools/webpack

Slide 14

Slide 14 text

AoTϓϥάΠϯ • طଘͷwebpack.config.jsʹ௥Ճ͢ Δ͚ͩͰAoT༗ޮԽͰ͖Δ • ͜ΕͰউͭΔʂ

Slide 15

Slide 15 text

Webpackઃఆ

Slide 16

Slide 16 text

AoTઃఆʢWebpackʣ const AotPlugin = require('@ngtools/webpack').AotPlugin; config.plugins.push( new AotPlugin({ tsConfigPath: helpers.root('tsconfig.aot.json'), entryModule: helpers.root('src', 'app', 'app.module#AppModule'), }) ); config.module.rules.push({ test: /\.ts$/, use: ['@ngtools/webpack'] }); ϓϥάΠϯ ϩʔμઃఆ

Slide 17

Slide 17 text

AoTઃఆʢTypeScriptʣ { "angularCompilerOptions": { "genDir": "aot", "skipMetadataEmit": true }, "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, UTDPOpHKTPOʹ
 "OHVMBS༻ͷઃఆ௥Ճ

Slide 18

Slide 18 text

AoTͷޮՌΛଌΔ 6TFS5JNF"1*
 Λ࢖͏ Ϟδϡʔϧͷىಈ։͔࢝Β
 දࣔϖʔδͷඳը׬ྃ·ͰΛܭଌ

Slide 19

Slide 19 text

ଌఆ݁Ռ "P5ແޮ "P5༗ޮ όϯυϧαΠζ
 <,#>   දࣔ·Ͱͷ࣌ؒ
   n=10

Slide 20

Slide 20 text

AoTޮՌ͋Γ ίϯϙʔωϯτ਺͕૿͑Ε͹͞ΒʹޮՌUP!?

Slide 21

Slide 21 text

·ͱΊ • AoTΛ࢖͓͏ • @ngtools/webpackͳΒ؆୯ʂ • Angular CLI΍Ionic CLI͸ඪ४౥ࡌ

Slide 22

Slide 22 text

ϋϚͬͨͱ͜Ζ • LoaderOptionsPluginͰ
 minimize: true ͱͯ͠͸͍͚ͳ͍ • CSSϩʔμपΓ͸include࢖͓͏ ↓ࠓճͷ݁Ռ
 https://github.com/puku0x/angular-onsenui2-webpack2