Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模は開発環境保守が大変なので改善する / ng-kyoto Angular Meetup 8
Search
OKUNOKENTARO
October 06, 2018
Technology
3
730
大規模は開発環境保守が大変なので改善する / ng-kyoto Angular Meetup 8
ng-kyoto Angular Meetup 8にて発表した資料です。
OKUNOKENTARO
October 06, 2018
Tweet
Share
More Decks by OKUNOKENTARO
See All by OKUNOKENTARO
トレタO/X アーキテクチャ移行記 Next.js App Router化への道のり / TORETA TECH UPDATE 1
okunokentaro
5
11k
Podcastを継続する技術 / refactoradio-240119
okunokentaro
1
190
Webアプリケーション設計の第一歩は ディレクトリの整理から / Encraft 1
okunokentaro
34
10k
JSONとJSON Schemaを改めて理解する / tokyo_study
okunokentaro
9
2.4k
それでもどうしてRecoilを使うのか / Harajuku.ts Meetup Recoil
okunokentaro
19
5.6k
TypeScriptは10年でこんなに進化しました / TechFeed Experts Night 11
okunokentaro
6
1.7k
Hasura.io RDBをサクサク作る方法はARやO/RMだけじゃなくなりました/hasura-io
okunokentaro
5
680
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.4k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1.1k
Other Decks in Technology
See All in Technology
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
110
LLM開発を支えるエヌビディアの生成AIエコシステム
acceleratedmu3n
0
370
AI時代の経営、Bet AI Vision #BetAIDay
layerx
PRO
1
1.7k
みんなのSRE 〜チーム全員でのSRE活動にするための4つの取り組み〜
kakehashi
PRO
2
130
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
850
リリース2ヶ月で収益化した話
kent_code3
1
160
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
170
2025新卒研修・HTML/CSS #弁護士ドットコム
bengo4com
3
13k
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
1
290
恐怖!テストコードなき夜
tsukuboshi
2
110
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
290
alecthomas/kong はいいぞ
fujiwara3
6
1.4k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Writing Fast Ruby
sferik
628
62k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
Statistics for Hackers
jakevdp
799
220k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Designing for Performance
lara
610
69k
Building Applications with DynamoDB
mza
95
6.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Designing Experiences People Love
moore
142
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Transcript
େن։ൃڥอक͕ େมͳͷͰվળ͢Δ 0DU OHLZPUP"OHVMBS.FFUVQ !PLVOPLFOUBSP
୭ w Ԟݡଠ!PLVOPLFOUBSP w ΫϨεΣΞද w "OHVMBSຊϢʔβʔձ OHLZPUP
ԿΛ͢Δਓ w େنܥҊ݅ͷ։ൃ ʢສʙສߦͷΞϓϦέʔγϣϯઃܭ͔Β࣮ʣ w ίʔ υ ϨϏϡʔઃܭͷίϯαϧλϯ τ
w ΧϯϑΝϨϯεͰͷొஃɺ ߨԋ w ٕज़ຊΦϯϥΠϯϚΨδϯͰͷࣥච w 8FC.VTJDٕज़Λ༻͍ͨ։ൃ
ϓϩδΣΫ τ͕େنʹͳΔͱ ͲΜͳ͕ى͜Δ͔
εέʔϧͤ͞Δ w খنˠதنˠେن w ϓϩδΣΫ τ͕େ͖ ͘ ͳͬͯɺ ҆ఆͯ͠։ൃνʔϜӡӦ͕Ͱ͖Δ͜ͱ
εέʔϧ͢ΔΞϓϦέʔγϣϯ։ൃ w ΞϓϦέʔγϣϯ ɾ ίʔ υΛεέʔϧͤ͞ΔΑ ͘ग़ͯ͘ Δ w ΞʔΩςΫνϟ͕ʜ
w Ϧ ϑΝΫλ Ϧ ϯά͕ʜ w ίʔ υ ϨϏϡʔ͕ʜ
͜Ε·Ͱͷొஃ
։ൃڥͷεέʔϧޙखʹͳΓ͕ͪ w ςε τϑ ϨʔϜϫʔΫͦͷͷͷۛຯ w ϓϩδΣΫ τॳظͷςε τϑ ϨʔϜϫʔΫΛ
େنʹͳ͔ͬͯΒ͍ଓ͚ΔͷຊʹΑ͍͜ͱͳͷ͔ ʁ w -JOU 'PSNBUUFSͳͲͷࣗಈॲཧͷੋඇ w ͦΕΒ͍࣮ͭߦ͖͔͢ ʁ w ඞཁͳϥΠ ϒϥ Ϧͷੋඇ w ͦͦpackage.jsonʹແବ͕ͳ͍͔ɺ ݟ͍ͯ͠Δ͔
"OHVMBS$-*͔Β֎ΕΔ͜ͱͷڪΕ w "OHVMBS$-*Λ͍ͬͯΔͱ "OHVMBS$-*͕͍͔ͳΔͱ ͖ਖ਼ղͩͱ৴ͯ͠͠· ͏ w ಋೖ࣌ͷํ๏ͱͯ͠"OHVMBS$-*Λ࠾༻͢Δͷద w "OHVMBS$-*ͷग़ྗ࠷େެత
w ͦͷߏ͕ͯ͢ͷϢʔβɺ ͯ͢ͷϓϩδΣΫ τʹৗʹద͔ ࠶ߟͷ༨͕͋Δ
"OHVMBS$-*ͷߏ
"OHVMBS$-*ͷߏ w "OHVMBS$-* w 5ZQF4DSJQU w 54-JOU w ,BSNB +BTNJOF
w 1SPUSBDUPS
࠷৽൛ w ݄࣌ w 5ZQF4DSJQU w 54-JOU w ,BSNB +BTNJOF
w 1SPUSBDUPS
ৗʹ࠷৽ͱ͍͏Θ͚Ͱͳ͍ w "OHVMBS$-*ʹΑͬͯΠϯε τʔϧ͞ΕΔύοέʔδ ৗʹ࠷৽൛ͱ͍͏Θ͚Ͱͳ͍ w 5ZQF4DSJQU"OHVMBSຊମͷґଘ͢Δόʔδϣϯͱͷ߹ੑ͋Γ Πϯε τʔϧ͞ΕΔͷͱ࠷৽ͷόʔδϣϯ͕Ε͍ͯΔ͜ͱ͕ଟ͍
OHVQEBUF w IUUQTHJUIVCDPNBOHVMBSBOHVMBSDMJXJLJVQEBUF w "OHVMBS$-*ʹґଘύοέʔδͷόʔδϣϯΛ্͛ΔͨΊͷίϚϯ υ͕͋Δ • ng update w
͜ΕΛϲ݄ʙͱ์ஔͨ͠Βɺ όʔδϣϯ͕ࠩେ͖ ͘ෆ۩߹ͷՄೳੑ͕ߴ·Δ w ։ൃʹ ʮఆظతͳόʔδϣϯͷ֬ೝͱΞοϓσʔ τ࡞ۀʯ ΛؚΉ͖
ඞͣՃΠϯε τʔϧͨ͠ํ͕Α͍ͷ w 1SFUUJFS w ਓ͕ؒίʔσΟ ϯάελΠϧΛؾʹ͢Δ࣌ऴΘͬͨ w 1SFUUJFSͷࣗಈܗ݁Ռʹৗʹै͏ w
࠷ॳ ʮࣗͷίʔσΟ ϯάελΠϧͱҧ͏ʯ ͱؾʹೖΒͳ͘ ͯ͏ w ϲ݄͢Ε׳Εͯ1SFUUJFSͳ͠ͷڥ͕͍ʹͳΔ
Πϯε τʔϧͯ͠Αͦ͞͏ͳͷ w MJOUTUBHFE IVTLZ w IUUQTQSFUUJFSJPEPDTFOQSFDPNNJUIUNM w ίϛ ο
τ࣌ͷ-JOU 'PSNBUͷڧ੍ w ࢍ൱྆͋Γ
ςε τͷ࠷దԽ
"OHVMBS$-*ͷςε τߏ w IUUQTBOHVMBSKQHVJEFUFTUJOH w ,BSNB +BTNJOF w 5FTU#FE w
ϞοΫͷࢦఆΠϯελϯεͷड͚औΓ w ґଘੑೖ %FQFOEFODZ*OKFDUJPO Λ׆༻ͨ͠ςε τʹ͔ܽͤͳ͍
ςε τϑΝΠϧͷࣗಈੜ w "OHVMBS$-*ςε τϑΝΠϧࣗಈੜ͢Δ wʮςε τΛॻ͔ͳ͘ ͪΌʯ ͱ͍͏ؾ࣋ͪʹͤ͞ΒΕΔ w
ςε τ߲ͷՃ࣌ʹ࠷ॳ͔ΒϑΝΠϧ͕༻ҙ͞Ε͍ͯΕ໘͕͞ݮΔ
ͦͷςε τຊʹඞཁ͔ w ͦͷςε τຊʹඞཁ͔ۛຯ͢͠ w ͦͷDMBTT 4FSWJDF ʹςε τຊʹඞཁ͔
ʁ w 'BDBEFύλʔϯͳͲͰઃܭͨ͠ࡍ ཱͪͱͳΔ4FSWJDFʹ೦ೖΓͳςε τΛॻ͖͔͘ ʁ w calls.count()ͷճݕূʹऴ͍࢝ͯ͠ͳ͍͔ ʁ w ϞοΫͷอक͚ͩͰΉΈʹർฐ͍ͯ͠ͳ͍͔ ʁ
ςε τΛࣺͯΔ༐ؾ wʮςε τΛࣺͯΔʯ ͱ͍͏ ͱෆԺʹฉ͑͜Δ͔͠Εͳ͍ w ۛຯͨ݁͠Ռ w ଞͷՕॴͷ୯ମςε
τͰॲཧ͕ेʹकΒΕ͍ͯΔ w ͜ͷՕॴͷςε τΛΧόϨοδͷͨΊ͚ͩʹ࣮ࢪ͢Δͷෆໟͩ w ςε τ͍߲͕͔ͨ͠Βͳ͍··ɺ ݟΑ ͏ݟ·ͶͰॻ͍͍͍ͯͯͭසൟʹյΕΔ w ͜͏͍ͬͨঢ়͕ى͍ͬͯ͜Δ߹ Ή͠Ζͦͷςε τࣺͯͨ΄͏͕։ൃޮ্͕͕Δ
୯ମςε τͷॲཧ࣌ؒ w ୯ମςε τͷ݅ w ݅ʙे݅Ͱ͋ΕؾʹͳΒͳ͍͔͠Εͳ͍ w ઍ݅Φʔμʔʹͳͬͯ͘ Δͱ
ʮςε τ࣮ߦ࣌ͷແବΛল͍ͯߴԽ͢Δʯ ͱ͍͏؍͕ඞཁ w ςε τ͕೦ೖΓͳͷɺ ͔ͨ͠ʹΑ͍͜ͱͩ wʮͦͷςε τ͋ͳͨͷͲΜͳෆ҆Λղফͤ͞ΔͨΊͷςε τͰ͔͢ ʁ ʯ w ແବͳςε τɺ ͍ͬͦແ͘ ͢͜ͱͰߴԽͤ͞Δ
+FTUͷಋೖ w +FTU w 'BDFCPPLͷςε τϑ ϨʔϜϫʔΫ w IUUQTKFTUKTJPKB w
ߴͳ࣮ߦͱɺ ߴͳ࠶࣮ߦ w ϚϧνίΞΛ׆༻ͨ͠ฒྻ࣮ߦ w εφοϓγϣ ο τςε τ
+BTNJOF͔Β+FTUͷҠߦ w ͱͱ+BTNJOFͰಈ͍͍ͯΔςε τΛ+FTUͰಈ͔͢ʹ w 5FTU#FEΛ͍ͬͯΔՕॴɺ Ұ୴+BTNJOFͷ··ͷํ͕Α͍ ʢ"OHVMBS+BTNJOFΛެࣜʹαϙʔ τ͍ͯ͠ΔͨΊʣ
w ؔͷςε τɺ ґଘੑೖΛΘͳ͍4FSWJDFͷςε τʹ+FTU͕༗༻ w +FTUͷ"1*+BTNJOFͷ"1*ͱ΄΅ޓ͕͋Δ w ϫʔΫΞϥϯ υͱ ͯ͠ .spec.ts+BTNJOF .test.ts+FTUͰಈ͘ Α ͏ʹͨ͠
UTDPOpHKTPOͷվ w "OHVMBS$-*ͷੜ͢Δtsconfig.spec.json͚ͩͰɺ +BTNJOFͱ+FTUͷಉډ͕ࠔ w +BTNJOFͷܕఆٛϑΝΠϧͱ+FTUͷܕఆٛϑΝΠϧ͕ ಉҰείʔϓ্ͰҰ෦ڝ߹͢ΔͨΊ w tsconfig.test.jsonΛෳͯ͠࡞ w
includecompilerOptions.typesͷϓϩύςΟ Λॻ͖͑ͯ +FTUͰར༻Մೳʹ͢Δ w angular.jsonͷMJOUͷઃఆซͤͯमਖ਼͠ͳ͍ͱɺ +FTUଆ͚ͩ-JOU͕ແࢹ͞ΕΔͷͰҙ
"OHVMBS +FTUͷαϯϓϧ w IUUQTHJUIVCDPNMBDPMBDPBOHVMBSKFTUNJOJNBM w "OHVMBSຊϢʔβʔձදͷMBDPʹΑΔαϯϓϧ w 5FTU#FEΛ͍ͬͯͯɺ +FTU্Ͱಈ͘ Α
͏ʹௐ͞Ε͍ͯΔ w ϓϩδΣΫ τ్தͰͳ͚Εɺ ྫΛࢀߟʹ࠷ॳ͔Β+FTUલఏͰߟ͑Δͷख
ςε τ࣮ࢪ͕ඇޮͳͱ͖ w ςε τ͕ઍ݅ʹͳͬͨͱ͖ ʮςε τࣦഊ࣌ͷ࠶࣮ߦʯ ͕ ૾Ҏ্ʹε τ
ϨεͱͳΔ w ςε τΛ࠶࣮ߦ͢Δͨͼʹ8FCQBDLͷϏϧ υͰ΄Ͳͨ͞ΕΔ w ઌʹམͪΔςε τΛॻ͍͔ͯΒಈ࣮͘Λॻ͘ɺ ͱ͍ͬͨΞϓϩʔνΛऔΔ͜ͱ͕ ࠔʹͳΔ w ͦͦςε τΛॻ͘ؾྗ͕ࣦΘΕΔ
+FTUͷ໌Β͔ͳϝ Ϧ ο τ w +FTUΥ ονͱ࠶࣮ߦʹؔ͢Δૢ࡞ੑ͕ͱͯΑ͍ w མͪͨςε τͷΈͷ࠶࣮ߦɺ
ςε τϑΝΠϧͷϑΝΠϧ໊ͰߜΓࠐΜͰͷ ࣮ߦͳͲίϚϯ υ͕๛ w ࠶࣮ߦ͕ඵʙඵͳͷͰςε τϑΝʔε τͳ։ൃࣗࡏ w ͍͜͠ॲཧৗʹςε τΛॻ͖ͳ͕Β࣮Ͱ͖Δͱ͍͏҆৺ײ͕͋Δ
&&ςε τͷੋඇ
&&ςε τ w &OEUPFOE5FTU w ࣮ࡍͷΞϓϦέʔγϣϯΛىಈ͠ ෳͷϢʔεέʔε ʢཁ݅ʣ ΛΈ߹ΘͤͨγφϦΦʹԊͬͯࣗಈૢ࡞ w
ͦͷ݁Ռ͕ਖ਼͍͜͠ͱΛݕূ͢Δ
&&ςε τߴ֬Ͱෛ࠴Խ w ͠&&ςε τͷੋඇΛཧղ͠ͳ͍··ɺ ΔؾΛग़ͯ͠೦ೖΓʹॻ͍ͨ߹ w ͦͷ&&ςε τ͔ͳΓߴ͍֬Ͱෛ࠴Խ͢Δ w
࣮ͷͱ͜Ζɺ εϚʔ τͰ༗ӹͳ&&ςε τΛॻ͍ͯอक͢Δʹ͔ͳΓ εΩϧ͕ٻΊΒΕΔ w มߋʹڧ͍͔Ͳ͏͔ w ػೳҰͭҰͭͷཻͩͱมߋগͳ͍ w ը໘શମͷ ʮͲΕ͔ʯ ͕มߋ͞ΕΔසߴ͍ w $44Ϋϥε໊ͷվ໊ɺ σβΠϯͷมߋͱཁૉͷ࠶ஔɺ ಋઢݟ͠
ෛ࠴Խͨ͠ςε τͲ͏ͳΔ͔ w ৗʹϨο υ w Ϩο υ୭ݟͨ͘ ͳ͍ w
$*ͷఆظ࣮ߦ͔Β֎͞ΕΔ w ϩʔΧϧͰ୭࣮ߦ͠ͳ͘ ͳΔ w ࣮ߦ͞Εͳ͍͔Βϝϯςφϯε͞Εͳ͘ ͳΔ
୭࣮ߦ͠ͳ͍ίʔ υͲ͏ͳΔ͔ w ෛ࠴Խ w ຊମଆͷίʔ υͷมߋͰɺ &&ͷςε τίʔ υ͕Λى͜͢͜ͱ͋Δ
w ୭࣮ߦ͠ͳ͍ίʔ υͷίϯύΠϧΤϥʔΛʑ ͱ͢ w ͦͷίϯύΠϧΤϥʔΛͯ͠୭ͤʹͳΒͳ͍ w ϓϩδΣΫ τશମݕࡧͰ&&ϑΝΠϧ͕Ҿֻ͔ͬΓݕࡧ݁ՌͷϊΠζͱͳΔ w ࠜຊతʹআڈ͢Δଞͳ͘ ͳΔ
ͦͦԿΛςε τ͍ͨ͠ͷ͔ w ͦͷγφϦΦຊʹ&&ςε τͱ ͯ͠ςε τ͖͢ͳͷ͔ w ϑϩϯ τΤϯ
υͷ୯ମςε τͰΑ͍ͷͰ ʁ w αʔόʔଆͷςε τʹ͖͢Ͱ ʁ w εφοϓγϣ ο τςε τΛ׆༻͖͢Ͱ ʁ w ۛຯ͢Ε͢Δ΄Ͳɺ &&ςε τ ʮͦΜͳʹແ͘ ͍͍ͯʯ ͱͳΔ
୯ମςε τͰͰ͖ͳ͍͜ͱΛΔ w ͋Δը໘Λ։͍ͨͱ͖ʹɺ ͦͷը໘ཁૉ ɾ ॲཧͷ ʮͲ͔͜ʯ Ͱ ϥϯλΠϜΤϥʔ͕ग़͍ͯͳ͍͔
wʮ͜ͷը໘Λ։͍ͨΒਅͬനͰͨ͠ ʂ ʯ Λແ͘ ͢ w Τϥʔ͕ग़ͳ͍߹ɺ ଟ͘ͷέʔεͰ ʮόάى͍ͬͯ͜ͳ͍ʯ ͱݟͳͤΔ w ͪΖΜݸʑͷ୯ମςε τɺ Өڹൣғಛఆɺ खಈςε τซ༻͖͢
1SPUSBDUPS w "OHVMBS$-*͕ಉ࣌ʹΠϯε τʔϧͯ͘͠ΕΔ&&͚ςε τϑ ϨʔϜϫʔΫ w ࠷৽൛ϲ݄Ҏ ʢ࣌ʣ ʹϦ
Ϧʔε͞Ε͍ͯΔͷͰ ։ൃ͕ࢭ·͍ͬͯΔΘ͚Ͱͳ͍
1SPUSBDUPSͷੋඇ w 1SPUSBDUPS4FMFOJVN 8FC%SJWFSΛϕʔεʹ͍ͯ͠Δ w ฮͷٕज़ w ͜Ε͕ѱ͍ͱݴ͍͍ͨΘ͚Ͱͳ͍ w $*Ͱಈ͔͍͔͢͠Ͳ͏͔͕ॏཁ
w ͪΐͬͱ͍͠
1VQQFUFFS w 1VQQFUFFS ʢύϖςΟ Ξʣ ΛͬͯΈΔ w 1VQQFUFFS)FBEMFTT$ISPNFΛૢ࡞Ͱ͖Δ w BTZODBXBJUߏจʹΑͬͯ୯७ͳεΫ
Ϧ ϓτΛॻ͘ Α ͏ʹهड़Մೳ w ্͔Βॱʹߦ͝ͱʹಡΊͯಡΈ͍͢
1VQQFUFFSͰͷ&SSPS%FUFDUJOH w 1VQQFUFFS +FTUΛΈ߹ΘͤΔ w 1VQQFUFFSͰ$ISPNFͷΤϥʔΛϋϯ υ Ϧ ϯάͰ͖Δ w
page.on('console', callback)ͱ͍͏"1* w ͜ΕΛ+FTUͰ࣮ߦ͠ ʮΤϥʔ͕ແ͚ΕάϦʔϯʯ ͱ͍͏ ςε τ͕ॻ͚Δ
1VQQFUFFSͱ$*ͷ૬ੑ w )FBEMFTT$ISPNFΛ͏ͷͰ$*Ͱͷڥߏங ɾ ىಈΛอূ͍͢͠ w 4FMFOJVNΑ ΓϋϚΓ͕গͳ͍
Πϯε τʔϧॲཧͱ$*࠷దԽ
OQNQPTUJOTUBMM w package.jsonʹpostinstallΛॻ͍͓͚ͯ npm installͨ͠ͱ͖ʹҰॹʹ४උ࡞ۀͬͯ͘Εָͯ w ຊʹָͳͷ͔ w npm installΛ͢Δͷਓ͚ؒͩͩͱࢥ͍ͬͯͳ͍͔
w $*͕ඞཁͱ͢Δ४උॲཧͱɺ ਓ͕ؒඞཁͱ͢Δ४උॲཧຊʹಉ͔͡
$*Ͱແବͳ͜ͱΛ͍ͯ͠ͳ͍͔ w ϓϩδΣΫ τ͕େ͖ ͘ ͳΓ$*ͷ࣮ߦ͕࣌ؒʙͳͲʹΕ্͕Δͱ ࿐ࠎʹ։ൃޮ͕Լ͕Γ࢝ΊΔ w 13ϨϏϡʔौɺ ܰඍͳमਖ਼Λͯ͠ຖճͨ͞ΕΔ
w $*ͷߴԽΛ͢Δඞཁ͕͋Δ
ܭଌͤΑ w ύϑΥʔϚϯεվળʹ͓͍ͯɺ ԿࣄਪଌΑ Γܭଌ w Ͳͷॲཧ͕͍ͷ͔పఈతʹચ͍ग़͢ w npm installͰແବͳͷΛΠϯε
τʔϧ͍ͯ͠ͳ͍͔ w ͍ͭͰʹ࣮ߦ͞ΕΔpostinstall$*࣮ߦʹඞཁͳॲཧͳͷ͔ w ਓ͕ؒԣண͢ΔͨΊͷॲཧ͕$*ʹͱͬͯෛ୲ʹͳ͍ͬͯͳ͍͔
ࡉԽͤΑ w ͨͱ͑postinstallΛΊΔ w ਓ͕ؒԣண͢ΔͨΊ͚ͩͷࣗಈԽ͠ͳ͍ w ࣮npm install && npm
run setupͳͲͷίϚϯ υͷΈ߹ΘͤΛ εχϖο τʹ࣮ͯ͠ߦ͢Ε͍͍͚ͩͩͬͨ w npm installͰͷॲཧΛݶΓͳ͘ݶఆతʹ͢Δ w 5FTUJOH -JOUJOH 1SFWJFX%FQSPZͷΑ ͏ͳෳ߹తͳॲཧΛॻ͔ͳ͍
ͳΔ͘ฒྻ࣮ߦ w ςε τͯ͠ɺ -JOUπʔϧճͯ͠ɺ ϓϩμΫγϣϯϏϧ υ࣌Τϥʔ͕ແ͍͔֬ೝͯ͠ʜ w ͦͷॲཧຊʹྻ࣮ߦ͠ͳ͍ͱ͍͚ͳ͍ͷ͔ ʁ
w ςε τͭͭ͠ɺ -JOUπʔϧճͭͭ͠ɺ Ϗϧ υ͢ΕΑ͍ w ฒྻ࣮ߦ͢Δ w 5SBWJT$*ʹ$JSDMF$*ʹฒྻ࣮ߦͷͨΊͷ"1*͕༻ҙ͞Ε͍ͯΔ w ࠷ऴతʹ$*ϓϩόΠμʹࡳଋϏϯλͯ͠εϖοΫΛ্͛Δ
ݡ͍։ൃڥอक
͍͔ͳΔͷΔ w ϓϩμΫ τίʔ υ͍ͬͯ͘ w ಉ࣌ʹςε τίʔ υΔ w
$*ͷઃఆϑΝΠϧΔ w package.jsonͷεΫ Ϧ ϓτΔ
ఆظతͳࢹͷ w ͕ى͖ͯ ʮ͍͔͍͍ͭͤʯ ͩͱɺ Ӭԕʹ͢ͱ ͖དྷͳ͍ w ͷੵɺ ͕ͯऔΓฦ͠ͷ͔ͭͳ͍͜ͱʹܨ͕Δ
w ։ൃ͕શʹε τοϓ͢Δʜ w म෮ʹਓ݄͔͔ΔʜͳͲ w ݱঢ়Ͱͳ͍͔ɺ ఆظతʹٙΛ࣋ͭ͜ͱ͕ॏཁ w ҆શͷͨΊͷ׆ಈ
҆શͳ։ൃɺ ҆શͳڥ͔Β 5IBOLZPV