Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Next.js meets Netlify
mottox2
May 22, 2019
Technology
3
1.4k
Next.js meets Netlify
Ginza.js #1
demo:
https://next-on-netlify.netlify.com/
mottox2
May 22, 2019
Tweet
Share
More Decks by mottox2
See All by mottox2
Puppeteerでつくる画像と動画 / images and videos made with puppeteer
mottox2
0
330
手触りのよいウェブを考える / better-mobile-web
mottox2
3
1.1k
組織と権限とSlack App / slack-app-with-roles
mottox2
1
330
SSRを避けるためにやっていること / ssr-alternative
mottox2
9
2.7k
JSXでつくる宣言的UIなプレゼンテーション / jsx-presentation
mottox2
7
29k
プレイヤー目線の技術ブランディング / personal branding
mottox2
3
2.9k
JSXで作るDSL / jsx-dsl
mottox2
1
1.4k
SSRを検討する際にSSGも検討しませんか? / ssr or ssg
mottox2
15
9.1k
GatsbyJS hands-on
mottox2
5
1.4k
Other Decks in Technology
See All in Technology
What's new in Vision
satotakeshi
0
130
Build 2022で発表されたWindowsアプリ開発のあれこれ振り返ろう
hatsunea
1
350
Security Hub のマルチアカウント 管理・運用をサーバレスでやってみる
ch6noota
0
300
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
音のような言葉 〜ちゃちゃっとチャットで楽しむちょっとしたコツ〜 / words like sounds
satoryu
1
1.3k
Scrum Fest Osaka 2022 フルリモート下でのチームビルディング
moritamasami
2
920
マネージャーからみたスクラムと自己管理化
shibe23
0
940
miisan's career talk
mii3king
0
210
Amazon ECRに無駄なコストがかかっていた
iwamot
0
150
覗いてみよう!現場のスクラムチーム
tkredman
0
930
誰が正解を知っているのか / Who knows the right answer
takaking22
1
220
Internet Explorer は Microsoft Edge へ - IE の歩みとこれから -
yuhara0928
1
3.4k
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
272
32k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.7k
How to train your dragon (web standard)
notwaldorf
58
3.8k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Happy Clients
brianwarren
89
5.6k
Docker and Python
trallard
27
1.6k
How to name files
jennybc
40
60k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
4
500
How to Ace a Technical Interview
jacobian
265
21k
The Cult of Friendly URLs
andyhume
68
4.8k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
11k
Transcript
Next.js meets Netlify 2019.05.22 Ginza.js#1 / @mottox2
フロントエンドエンジニア(Web/iOS) Gatsby, Gridsome maintainer お仕事 OSS mottox2 @ ؿٔ٦ٓٝأ8FCؒٝآص، ⾃⼰紹介
#engineers_lt
#ginzajs Next.js • Next.jsはSSRが組み込まれているReactベースのフレームワーク • pages/以下にエントリーポイントを置くとディレクトリ構造とURL構造が ⼀致する • pages/index.js =>
example.com/ • pages/detail.js => example.com/detail • getInitialPropsというメソッドでサーバーサイドでのデータ取得を⾏う • Next.js v8でserverlessモードが追加された
#ginzajs Netlify • 静的サイトのホスティングに強いホスティングサービス • リポジトリを⽤意してpublish directoryとdeploy commandを設定する だけでデプロイが可能 •
GitHubと相性がよく、masterブランチをproductionにデプロイ。 • デプロイ⽬的のCI設定が不要 • Functions(裏側はAWS Lambda)を使うと動的なレスポンスを返すこと ができる
#engineers_lt Netlify FunctionsでNext.jsのSSRを⾏い サイトを構築する テーマ
#ginzajs Serverless Next.js • next.config.jsにtarget: serverlessを指定してビルド • 各ページごとにファイルが⽣成される。 • /pages/index.js
=> .next/serverless/pages./index.js • /pages/index.js => .next/serverless/pages./detail.js next.config.js
#ginzajs • Cloud Functionsで動かす例 • ⽣成されたファイルを実⾏するだけでSSRが実現できる Serverless Next.js
#ginzajs Netlify Functions • 設定したディレクトリ(functions directory)にあるJSファイルが⼀つの 関数と⾒なされ、固有のURLが付与される。 • 例: functions
directoryにfunctions/を指定した場合 • functions/index.js => example.com/.netlify/functions/index • functions/detail.js => example.com/.netlify/functions/detail netlify.toml
#ginzajs Netlify Functions • Functionの例
#ginzajs Netlify Functions • netlify-lambdaをビルドに利⽤する。 • webpackとbabelの薄いラッパー。指定したディレクトリのJSファイルを ビルドしてくれる。 • src/functionsにソースコードを書いている時
• `netlify-lambda build src/functions` • functions directory(ex. functions/)にビルドされる。
#ginzajs Netlifyのリライト • ただ、FunctionsのURL(ex. example.com/.netlify/functions/index)は⼈ 間に優しくない。 • Netlifyではリライトも⽤意されており、publish directory以下に `_redirects`ファイルにリライトの情報を記述する
public/_redirects
#ginzajs Netlify FunctionsとNext.jsのつなぎこみ • next build && cp -a public/_next/serverless/
pages src/functions/ && netlify-lambda build src/functions • とても煩雑。Cloud Functionsでやっても同じ感 じになります。
#ginzajs Netlify FunctionsとNext.jsのつなぎこみ • Next.jsで⽣成される関数にはreqとresが必要。Functionsの引数と⼀致し ない。 • AWS Labmdaの引数をreqとresを変換するマッパーを⽤意する
#ginzajs Netlify FunctionsとNext.jsのつなぎこみ • Netlifyではリライト先にクエリパラメータを指定できないので、正規表現 でゴリ押し src/functions/post.js
#ginzajs デモ • Demo: https://next-on-netlify.netlify.com/ • Source: https://github.com/mottox2-sandbox/next-on-netlify
#ginzajs まとめ • NetlifyでもSSRできる • ⾃分はFirebaseで同じことをやっています • Firebase + Nuxtの話と被りを感じた
• 既出だったのでNetlifyでやってみました • Netlify、この本がおすすめ(宣伝) • https://booth.pm/ja/items/1316769 • Next.jsを利⽤するならnow.shが⼀番楽です
#ginzajs Thank you! 2019.05.22 Ginza.js#1 / @mottox2