Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
12k
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.8k
Hasura.io RDBをサクサク作る方法はARやO/RMだけじゃなくなりました/hasura-io
okunokentaro
5
690
コードには型アノテーションよりも要件アノテーションを増やせ!/harajukuts2
okunokentaro
14
6.5k
10年と3ヶ月でWebサービスを作った話 / Piyogrammer Conference 2021
okunokentaro
2
1.1k
Other Decks in Technology
See All in Technology
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
510
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
260
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
190
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
870
因果AIへの招待
sshimizu2006
0
980
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
600
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
280
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.3k
RAG/Agent開発のアップデートまとめ
taka0709
0
180
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
170
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
340
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
780
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Facilitating Awesome Meetings
lara
57
6.7k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Side Projects
sachag
455
43k
Making Projects Easy
brettharned
120
6.5k
Documentation Writing (for coders)
carmenintech
76
5.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
GraphQLとの向き合い方2022年版
quramy
50
14k
Fireside Chat
paigeccino
41
3.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
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