Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Angular 4→8対応にて学んだAngularでのバージョン追従作法 / Classi Angular Night 4

OKUNOKENTARO
October 03, 2019

Angular 4→8対応にて学んだAngularでのバージョン追従作法 / Classi Angular Night 4

2019/10/3、Classi Angular Night #4 にて発表した資料です。

OKUNOKENTARO

October 03, 2019
Tweet

More Decks by OKUNOKENTARO

Other Decks in Programming

Transcript

  1. ୭ w Ԟ໺ݡଠ࿠!PLVOPLFOUBSP w ΫϨε΢ΣΞ୅ද w ϑϩϯ τΤϯ υ ɾ

    όοΫΤϯ υ ɾ ΤϯδχΞ w "OHVMBS೔ຊϢʔβʔձ
 OHLZPUPΦʔΨφΠβ
  2. ϨΨγʔΞϓϦέʔγϣϯͱ͸ wʮϨΨγʔίʔ υվળΨΠ υʯ Ͱ͸ϨΨγʔίʔ υΛ
 ςε τͷͳ͍ίʔ υͱఆ͍ٛͯ͠Δ w

    ࠓճड़΂ΔϨΨγʔΞϓϦέʔγϣϯ͸ԼهΛࢦ͢΋ͷͱ͢Δ w ςε τ͕͋ͬͨΓͳ͔ͬͨΓ ͭͭ͠ w ͱʹ͔͘ݹ͘ w ௕͍ؒ୭ͷख΋ՃΘͬͯͳ͍΋ͷ
  3. ౰࣌ͷࣄ৘͕·ͬͨ͘෼͔ΒΜ w ελʔ τΞοϓ͋Δ͋Δ w ιϩϓϨʔ w ίϛ ο τϩά͸୭΋ಡ·ͳ͍ͷͰ؆ૉ

    w ͦ΋ͦ΋ίʔ υ ϨϏϡʔ͢ΔΤϯδχΞ͕͍ͳ͍ w ͦ΋ͦ΋ࣾ಺ʹΤϯδχΞ͕଍Γͳ͍
  4. ϑϧϦ ϓϨʔε͔ɺ ϚΠάϨʔγϣϯ͔ w ݹ͗͢Δͷͱɺ ଞͷ༷ʑͳࣄ৘΋͋Γ৽όʔδϣϯͷ։ൃ͕ܾఆ w େ൒ͷػೳ͸ϑϧϦ ϓϨʔεͰ࣮ࢪ w

    ίʔ υͷ࡮৽Α Γ ΋ɺ αʔϏε ɾ ؅ཧը໘ࣗମͷ࡮৽͕໨త w ͔͠͠Ұ෦ը໘͸Ϧ ϓϨʔεͷ޻਺Λݟੵ΋Δͱॏ͍ʜ w खೖΕ͞Εͯ͸͍ͳ͍͕ɺ ϚΠάϨʔγϣϯͰ͖ΔͳΒ͹ͦͷ޻਺͸ු͘ ʁ  w ϚΠάϨʔγϣϯ ɾ ίε τͱ Ϧ ϓϨʔε ɾ ίε τͷఱṝʜ
  5. ϚΠάϨʔγϣϯ੒ޭ ʂ w Ϧ ϓϨʔε͠ͳ͍Ұ෦ػೳ͸ɺ ϦχϡʔΞϧલޙͰఏڙ಺༰͕มΘΒͳ͍ͨΊ
 ϚΠάϨʔγϣϯͷ࠾༻Մೳੑ͕͋ͬͨ w "OHVMBSΛ࠾༻͍͓͔ͯͨ͛͠Ͱˠ͸Մೳͱ൑அ w

    ࢓༷ॻͷແ͍ػೳͷ࢓༷೺Ѳ͔Β࢝ΊͯϦ ϓϨʔε͢ΔΑ Γ
 ϚΠάϨʔγϣϯ͕୹޻਺ͩΖ͏ ͱ൑அ w ݁Ռతʹݱࡏ"OHVMBSͰݩؾʹಈ͍ͯ·͢
  6. खͰؤுΔ w ౰࣌͸"OHVMBS$-* ʢ೥݄ʣ  w ࣗಈϚΠάϨʔγϣϯͯ͘͠ΕΔศརίϚϯ υ
 ng updateͷఏڙ͸"OHVMBS$-*

    ʢ೥݄ʣ ͔Β w "OHVMBSˠ͸ා͍ w "OHVMBSˠ ˠΛܦͯҰ୴"OHVMBSܥʹண஍͢Δ w ౖ౭ͷίϛ ο τΛ͝঺հ
  7. "OHVMBSˠͦͷલʹʜ w ͦ΋ͦ΋౰࣌
 /PEFKTͷόʔδϣϯ͍ͭ͘ɺ OQN͍ͭ͘Ͱಈ͍͍ͯͨͷ͔͢Βෆ໌ w ։ൃ؀ڥͷ࠶ݱ͢Βࠔ೉ w ͱ Γ͋͑ͣ։ൃ͕ࢭ·ͬͨ࣌ظ͔Βٯࢉͯ͠


    ʮ/PEFKT͸͜ΕͩΖ͏ɺ ͦͷͱ͖ʹಉࠝ͞ΕΔOQN͸͜Εͷ͸ͣʯ 
 ͱ͍͏ԾఆͰߏங w ڭ܇ ɿ .node-version, package.json engine, README.md ͳͲΛ
 ೔ࠒ͔Βϝϯς͓ͯ͘͠
  8. Ϟϊ Ϩϙ͔Βͷϋʔ υϑΥʔΫઓུ w ϨΨγʔ਌ΞϓϦ͔ΒࢠΞϓϦΛ࡞ΓϞϊ Ϩϙߏ଄ΛऔΔ w ࢠΞϓϦͷΈ"OHVMBS  

    ͱਐΊΔ w ࢠΞϓϦ͕"OHVMBSʹϚΠάϨʔγϣϯ׬ྃͨ͠Β
 ৽ ɾ ਌ΞϓϦͷࢠʹͳΔΑ ͏ϋʔ υϑΥʔΫ w ৽ ɾ ਌ΞϓϦ͕ࢠΞϓϦͷίϯϙʔωϯ τΛ෦෼తʹऔΓࠐΉ w ׬੒ ʂ ʂ
  9. "OHVMBSˠ w "OHVMBS$-*ొ৔ w .angular-cli.json͔Βangular.json΁ͷม׵͕ࢁ৔ w ઌʹ$-*ͷΈαϙʔ τόʔδϣϯΛ্͔͛ͯΒ
 ng update

    @angular/coreͰม׵ରԠ w ஍ຯʹ3Y+4ˠͷํ͕ॏ͍͜ͷϑΣʔζ w .pipe()΁ͷॻ͖׵͑Λͻͨ͢Βॗʑ ͱߦ͏ w େ൒BOZͳ··ͳͷͰɺ ৗʹมߋͨ͠Βର৅ػೳΛखಈσόοά ʢςε τ͸ͳ͍ʣ
  10. OHVQEBUFΛ৴͡Ζ w "OHVMBS࿝ਓձͬΆ͍͕
 ʮ͔ͭͯͷϚΠάϨʔγϣϯ͸ࠎ͕ંΕͨʯ  w ࠓͷ"OHVMBS͸ͱʹ͔͘਌੾ w શવࠎંΕͳ͍ͷͰɺ ͪΌΜͱ࠷৽൛͕ग़ͨΒ޻਺֬อ্ͯ͛͠Α

    ͏ ʂ  w ͪͳΈʹࠓճͷˠʹֻ͔ͬͨ޻਺͸ਓ೔
 ʢ˞Ϗδωε೺Ѳ͕ࡁΜͰ͓Γը໘ͷΈҠ২ͱ͍͏৚݅ͳͷͰɺ ৗʹ͜ͷ޻਺Ͱ͸ରԠͰ͖ͳ͍Ͱ͢ʣ
  11. ͳʹ͸ͱ΋͋Εܕ෇͚ w BOZ͕͋· Γʹ΋ଟ͍ͷͰॱ࣍ܕ෇͚ w ಛʹ!0VUQVUͷnew EventEmitter<any>()͸
 ԿΛૹͬͯͲ͏࢖͍ͬͯΔͷ͔ɺ ·ΔͰ௥͑ͳ͍ͷͰૣظʹखೖΕ w

    3&45"1*Λୟ͘पล΋શମతʹBOZͰ͸ࠔΔͷͰखೖΕ w ૊৫͕ٸ੒௕ͷϑΣʔζ͔Β௕ظ੒௕ͷϑΣʔζʹҠͬͨͷͰ
 ࣌ؒΛ੯͠·ͣஸೡʹܕ෇͚
  12. ৑௕ͳϑΝΠϧΛআڈ w ͨͱ͑͹constructorͷॻ͔Ε͍ͯͳ͍4FSWJDF w Ұ౓΋ग़ͯ͜ͳ͍this w ͜͏͍ͬͨؔ਺ूͷΑ ͏ͳϢʔςΟ ϦςΟ ɾ

    αʔϏε͸ͲΜͲΜআڈ w ϝ ιο υΛ७ਮͳؔ਺ͱ ͯ͠੾Γग़ͯ͠୯ମςε τΛॆ࣮ͤ͞Δ
  13. ৽ΞʔΩςΫνϟʹԊΘͤΔ w େ൒ͷίʔ υ͸ ʮಈ͍͍ͯΔͷͰ໰୊ͳ͍ʯ  w Կ͕໰୊͔ͱ͍͏ ͱ ʮͳͥͦ͜ʹॻ͍ͨͷ͔ʯ

     w ΞʔΩςΫνϟҙ͕ࣝݱࡏͱ͸ҟͳΔࠒͷίʔ υ͸
 ʢಛʹελʔ τΞοϓॳظͩͱʣ 'BUʹͳΓ͕ͪ w 'BUͳॲཧͦͷ΋ͷͷϦ ϑΝΫλ Ϧ ϯά͸໨ΛͭͿͬͯɺ ߦ୯ҐͰϑΝΠϧ෼ׂ w ϑΝΠϧ෼ׂͱ ϑΝΠϧ໊෇͚͕ஸೡʹͳΔ͚ͩͰ΋Մಡੑ͸͔ͳΓ্͕Δ w ܕ෇͚͕े෼ʹͳΕ͹ϑΝΠϧ෼ׂલޙͷίϯύΠϧอূͰ͔ͳΓ҆৺ײΛಘΔ
  14. ݹ͍ίʔ υ͸ਖ਼௚ͳΜͱ͔ͳΔ w 'BUͳͷ͕ࢥߟΛࢭΊΔݪҼ w ߦͷݹ͍ίʔ υ͸ಡΊͳ͍ w Θ͔ͣߦͷݹ͍ίʔ υͩͬͨΒಡΊΔ

    w ݹ͍ίʔ υͷϦ ϑΝΫλ Ϧ ϯάΑ Γɺ ࣮૷Λ͍͡Βͳ͍ϑΝΠϧ෼ׂͷ΄͏͕
 අ༻ରޮՌ͕ߴ͘ɺ Τϯόά΋ආ͚΍͍͢ w ຊ౰ʹՄಡੑʹ೉͕͋Δίʔ υͷϦ ϑΝΫλ Ϧ ϯάͷͨΊͳΒ͹
 ୯ମςε τΛશྗͰॻ͘
  15. w ελʔ τΞοϓ͋Δ͋Δͱ ͯ͠
 ॳظͷϓϩάϥϛϯάࢥ૝ͱɺ த௕ظ੒௕ϑΣʔζͷࢥ૝͸Ұக͠ͳ͍ w ೥౰࣌ͷΤϯδχΞʹ
 ʮ೥ʹͳͬͯ΋εϜʔζʹಡΊΔΑ ͏ʹॻ͚ʯ

    ͱݴ͏ͷ͸͓໳ҧ͍ w ຊؾΛग़ͤ͹ͪΌΜͱϚΠάϨʔγϣϯͰ͖Δ w ͦͷͱ͖੔උͰ͖Δਓ͕ͪΌΜͱ੔උ͍ͯ͘͠ w ϘʔΠεΧ΢ τͷεϩʔΨϯ೔೔ͷળߦΛҙࣝ ʢ ʰϓϩάϥϚ͕஌Δ΂͖ͷ͜ͱʱ Α Γʣ ૯ׅ