Slide 1

Slide 1 text

7FSDFMNPOPSFQPରࡦ 4FQ *SJT-5ձ !PLVOPLFOUBSP

Slide 2

Slide 2 text

୭ w Ԟ໺ݡଠ࿠!PLVOPLFOUBSP w ΫϨε΢ΣΞגࣜձࣾ w .S໰୊ղܾ w 5ZQF4DSJQUϑϩϯ τΤϯ υ ɾ όοΫΤϯ υ

Slide 3

Slide 3 text

.POPSFQP w Ϟϊ Ϩϙ w NPOP઀಄ࣙ ʢϞϊΫϩɺ Ϟϊϩʔάɺ ϞϊϙϦʔʜʣ w ͻͱͭͷ3FQPTJUPSZͰෳ਺ͷύοέʔδΛ؅ཧ͢Δ͜ͱ w ਖ਼௚࿩ऀʹΑͬͯࢦͯ͠Δཻ౓͕ҧ͏ w ྫ ɿ ϝϧΧϦ4IPQTͷϞϊ Ϩϙ w ྫ ɿ OQNͰͷ044ʹ͓͚ΔϞϊ Ϩϙ

Slide 4

Slide 4 text

7FSDFMʹ͓͚ΔϞϊ Ϩϙ w 7FSDFMʹ͸Oݸͷ/FYUKTΞϓϦέʔγϣϯΛσϓϩΠͰ͖Δ w IUUQTWFSDFMDPNCMPHNPOPSFQPT w ͦͷ·Μ·ͳ໊લͷهࣄ͕͋Δ w Ұݟ͜ͷ·Μ·΍Ε͹ɺ ໰୊ͳ͍͚ͦ͘͏

Slide 5

Slide 5 text

Α ͘ ͋Δڞ௨Խ໰୊ w 3FQPʹ"QQ" "QQ#͕͋ͬͨͱͯ͠ɺ w "ͱ#ͷڞ௨ίʔ υ͸Ͳ͏͢Δ ʁ w ྫ͑͹ϩάΠϯॲཧ͸ɺ ؀ڥม਺ͷҧ͍͚ͩͰ࢒Γͷϑϩʔ͸͢΂ͯҰॹ w ؀ڥม਺͚ͩҾ਺Խͯ͠ɺ ͋ͱ͸ؔ਺ʹ͍ͨ͠ w Ͳ͜ʹஔ͘ ʁ

Slide 6

Slide 6 text

6OJWFSTBMσΟ ϨΫ τ Ϧ w "QQ" "QQ#ͱܑఋͷσΟ ϨΫ τ Ϧ ͱͯ͠VOJWFSTBMΛஔ͘ w ./app-a ./app-b ./universalΈ͍ͨʹͳΔ w ൵͍͜͠ͱʹ͜Ε͸·ͬͨ͘ಈ͔ͳ͍ w 8FCQBDL͸ΞϓϦέʔγϣϯͷϧʔ τΑ Γ਌Λࢀর͢Δ͜ͱ͕Ͱ͖ͳ͍ w DPO fi HͰରࡦ͢Δ

Slide 7

Slide 7 text

OFYUDPO fi HKT module.exports = { webpack: (config) => { const tsRule = config.module.rules.find((v) => v.test ? . toString().includes("ts") ); // app ΑΓ্ͷσΟϨΫτϦʹ͋Δ universal Λऔಘ͢ΔͨΊʹઃఆ const projectRoot = path .parse( __ filename) .dir.split(path.sep) .slice(0, -1) .join(path.sep); tsRule.include.push(projectRoot); return config; }, };

Slide 8

Slide 8 text

͜Ε͚ͩ͡Ό·ͩͩΊ w ϩʔΧϧͰ͸ϏϧυͰ͖Δ w 7FSDFMଆͰ͸·ͩϏϧυࣦഊ͢Δ w ͳͥͳΒ7FSDFMͷεΫ Ϧ ϓτͰ͸ΞϓϦέʔγϣϯϧʔ τ͔͠ 
 npm iͯ͘͠Εͳ͍ w VOJWFSTBMͰ࢖͏ ϥΠ ϒϥ Ϧ͸ಡΈࠐ·ΕͣΤϥʔͱͳΔ

Slide 9

Slide 9 text

*OTUBMM$PNNBOE্ॻ͖ w *OTUBMM$PNNBOEΛ্ॻ͖ͯ͠ɺ 
 ͦ͜Ͱ਌ͷnpm iΛ࣮ߦ͢Δ w OQNͷόʔδϣϯ͕ 
 ἧΘͳ͍ͱ͖͸ɺ ͜͜ͰڧҾʹ͍ΕΔ

Slide 10

Slide 10 text

5IBOLZPV