Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
October 04, 2019
Technology
1
1.4k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
October 04, 2019
Tweet
Share
More Decks by kikunantoka
See All by kikunantoka
kikunantoka
0
350
kikunantoka
3
970
kikunantoka
1
850
kikunantoka
3
350
kikunantoka
2
370
kikunantoka
1
1.2k
kikunantoka
0
170
kikunantoka
0
470
kikunantoka
1
410
Other Decks in Technology
See All in Technology
uzabase_saas_product
0
100
yuji1484
3
870
karamem0
1
790
ch1aki
2
240
900groove
2
520
youtalk
0
430
kahara33
0
120
nitya
0
320
koukyo1994
5
1.6k
kanaugust
PRO
0
120
udonyuya
1
560
shirayanagiryuji
1
280
Featured
See All Featured
scottboms
251
11k
3n
163
22k
thoeni
3
610
mza
80
4.1k
akmur
252
19k
bkeepers
408
58k
lauravandoore
437
28k
denniskardys
219
120k
malarkey
193
8.6k
skipperchong
8
720
kastner
54
1.9k
cassininazir
347
20k
Transcript
Gatsby.jsͱCloud FunctionsͰ ຖिࣗಈͰίϯςϯπ͕ߋ৽͞Εଓ͚Δ ϑϨʔϜϫʔΫൺֱαΠτΛ࡞ͬͨ Gotanda.js #13on 2019/10/04 @kikunantoka
ࣗݾհ about: name: Fumitaka Kikukawa work_at: giftee Inc. twitter: @kikunantoka
job: software engineer // ීஈRailsΛ৮͍ͬͯ·͢ // ॊΒ͔ΊͳΦϊΛ͓ئ͍͠·͢ //ʢࢦఠ͍͖͍ͯͨͩͨ͠Ͱ͢ ʣ
giftee Inc, in Gotanda
ʮGatsby.jsʯ ͬͯͬͯ·͔͢ʁ ?
• ੩తαΠτδΣωϨʔλ • React Ͱॻ͚Δ • SPAͳ੩తαΠτΛੜͰ͖Δ • StaticGen ΛݟΔݶΓɺ࠷ۙϗοτͳٕज़
None
None
ϗεςΟϯά • NetlifyΛ͏ͱGatsby.jsͰ࡞ͨ͠੩తαΠτΛ؆୯ʹϗεςΟϯάͰ͖Δ
Gatsby.jsͰݸਓͷϒϩάΛ࡞ͬͨ https://kikunantoka.com
Gatsby.jsͰۀͰ๏ਓ͚LPΛ࡞ͬͨ https://giftee.biz
Gatsby.jsͰۀͰ๏ਓ͚LPΛ࡞ͬͨ https://speakerdeck.com/kikunantoka/
Gatsby.js x Netlify ศར !
͜ͷΈ߹ΘͤͰԿ͔໘ന͍͜ͱ͕Ͱ͖ͳ͍͔ • GitHubͷϦϙδτϦʹPush͢ΔͱɺNetlifyͰBuild͕ΓɺσϓϩΠͯ͘͠Εͯί ϯςϯπ͕ߋ৽͞ΕΔ • GitHubͷAPIΛୟ͍ͯɺίϛοτͤ͞Εɺߋ৽ΛࣗಈԽͰ͖ΔͷͰ
͜ͷΈ߹ΘͤͰԿ͔໘ന͍͜ͱ͕Ͱ͖ͳ͍͔
͜Εͩ !
Gatsby.jsͱCloud FunctionsͰ ຖिࣗಈͰίϯςϯπ͕ߋ৽͞Εଓ͚Δ ϑϨʔϜϫʔΫൺֱαΠτΛ࡞ͬͨ ϑϩϯτΤϯυ Night #1on 2019/09/04 @kikunantoka
͜Μͳײ͡ͷϓϩτλΠϓΛ࡞ͬͨ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
Cloud Functions for Firebase • αʔόϨεͰJSͷؔΛ࣮ߦͰ͖ΔαʔϏε • JSͰTSͰॻ͚Δ • FunctionΛੜ͢Δ࣌ʹࢦఆͰ͖Δ
Cloud Functions for Firebase • ఆظ࣮ߦ͕Ͱ͖Δ • CronܗࣜͰࢦఆ͢Δ͚ͩʢຖि݄༵10࣌ʣ exports.scheduledFunctionCrontab =
functions.pubsub .schedule("0 10 * * 1”) .timeZone("Asia/Tokyo") .onRun(() => { return 0 })
σϞ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
σϞ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
σϞ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
σϞ
σϞ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
σϞ
γεςϜߏ 0 10 * * 1 ᶃ ϑϨʔϜϫʔΫͷ ϦϙδτϦҰཡΛऔಘ ᶄ
GitHub APIΛୟ͍֤ͯϦϙδτϦͷ ελʔͳͲͷσʔλΛऩू ᶅ σʔλΛYamlϑΝΠϧʹ·ͱΊͯ kikunantoka/framework-mania ʹPush ᶆ PushΛhookͯ͠ɺbuild & deploy ᶇίϯςϯπ͕ߋ৽͞ΕΔ
σϞ
͜ͷγεςϜߏʹର͢Δ͍ • ͍ͬͯΔͷJS͚ͩ • ͷΓସ͑ίετ͕গͳ͍
͜ͷγεςϜߏʹର͢Δ͍ • ϝσΟΞͱͯ͠ɺߋ৽ස͕1िؒʹ1ճఔͰྑ͍ • ຖճAPIΛୟ͘ඞཁ͕ͳ͍ • APIͷ݁ՌΛΩϟογϡ͢Δʁ • ιʔεΛॻ͖͑Δํ๏Ͱྑ͍ͷͰ •
APIΛୟ͔ͳ͍ͷͰɺඳը͕ૣ͍
͜ͷγεςϜߏʹର͢Δ͍ • ΄΅ແྉͰӡ༻Ͱ͖Δ • ์ஔ͍ͯͯ͠େৎ • Ϟνϕʔγϣϯ͕อͯΔ • ݸਓ։ൃͱͯ͠ɺ͚ͬ͜͏େࣄ
։ൃͷ͋Ε͜Ε
GitHub APIʹ͍ͭͯ • JSΫϥΠΞϯτެࣜͷͷΛ͏ͱྑ͍ • https://github.com/octokit/rest.js • υΩϡϝϯτ͕গ͠ݕࡧͮ͠Β͍
ࠓޙͷల • ʮLatest commit XX daysʯग़͍ͨ͠ • 1िؒͷࠩΛऔΓ͍ͨ • Starͷ৳ͼͳͲ
• FireStoreʹຖिͷஅ໘σʔλΛੵ͍ͯͬͯ͠ɺࠩΛग़͢
ࠓޙͷల • ଞͷϑϨʔϜϫʔΫ/ϥΠϒϥϦͷςʔϚ·ͱΊ͍ͨ • React UI Component Framework • Vue
UI Component Framework • ϥΠϒϥϦʢmoment.js, day.jsʣͷൺֱ • ͜ΜͳςʔϚ͕ྑ͍ͷͰɺͱ͍͏Ҋ͕͋Εɺͥͻ࠙ձͰ
None
ίϚʔγϟϧ - We are hiring !!!