この記事は古い記事になる。
この記事の手順は非常に手間でありデメリットが多い。
現在は次の方法でローカルビルドをしている。
Netlify-CLIを使ってGatsby.jsのサイトをローカルでビルドしてデプロイする
こちらのほうが圧倒的に簡単かつNetlifyのビルド時間を消費しないので参考にしていただければと思う。
以下、古い記事も残しておく。
今回は**「Netlify
に反映される時間は早くなるがローカルのビルド時間も入れたら微妙。面倒ならNetlify
に任せたほうが楽。」**という微妙な結論となった。
しかしNetlify
側にビルドを任せていると毎回ビルド待ちが発生し、失敗しているかどうかはNetlify
にアクセスしないとわからないため個人的には手間が多かった。
ローカルでビルドしてしまう方法ならpush後1分で反映されるため今後しばらくはこの方法で行こうと考えている。
簡単な導入方法を記載しているのでもし興味があれば読んでみて欲しい。
【Netlify x Gatsby.js】ビルド時間を短縮!差分だけビルドする機能(Incremental Builds)を導入するテスト(結論:私の環境ではエラー)
こちらにてNetlify
のIncrement Builds
(ビルド時間を短縮するプラグイン)が現在エラーで使用できないことが分かった。
それならばそもそもNetlify
に頼らず自前でビルドした分を送り込んでやれば何もかも早くなるのでは、と検索した結果次の有用なサイトがあった(しかも日本語!)
Gatsby.jsサイトをローカルでビルドしてNetlifyで公開する
記事内容は重複となるが、私もテストしてみたのでレポートする。
.gitignore
を編集ビルド結果のpublic
フォルダはGitHub
にアップロードされないようになっているため、こちらをアップロードする設定に変更する。
public/
となっている箇所の先頭にシャープをつけてコメントアウトにして保存する。
# public/
netlify.toml
を編集これは先程紹介したサイトには乗っていなかったので注意。
netlify.toml
上の build
=> command
に記載されている部分はWeb上のNetlify
で設定したコマンドより優先されるためまずはこちらをコメントアウト。
[build]
# command = "npm run build"
つまり、ビルドコマンドを実行しないようにする。
Netlify
の設定を変更Netlify
側にもビルドコマンドが設定されているので消去する。
Deploys
=> Deploy settings
一番上に表示されている項目Build settings
からEdit settings
Build command
を空欄にしてsave
これでビルドされなくなるはず。
適当に.md
ファイルで記事を書いてビルドしてみる
npm run build
※もしこれが動かないユーザーがいたらスクリプトが設定されていないだけかと思う。gatsby build
でよい。
いつもどおりGitHub
にcommmit
してpush
する。
差分がえげつない数になっている。
GitHub
へのアップロードは意外にも一瞬で終わる。
Netlify
を確認push
完了したからといってすぐ利用可能になるわけではない。
Netlify
側にデータがアップロードされるまでしばし待つ。
結局1分19秒かかった。
直前のビルドが2分27秒だったので正直手間を考えたらそれほど効果がない印象。
ここでtest記事が正しくポストされたことを確認した。
テスト記事を削除してもう一度アップロードしてみる。
今度はNetlify
側がロードするのは削除した記事だけの差分のみになる。反映速度はどうなるか。
1分2秒。確かに短くなった。
ローカルでは46秒ビルドしているので手動でアップロードしているコマンド分をあわせても2分程度といったところか。
たしかにビルド時間は短くなるが、ローカルでビルドしている時間と手間を考えると特別有利な数字ではない。個人的には残念な結論だ。
私はこの方法を続けようと思うが、一般的に考えたら毎月のビルド時間制限(300分)に引っかからないのであれば**Netlify
で通常ビルドさせてしまったほうが楽に思う。**
あと一点。この手法はNetlify
上でビルドは走らないがデータをロードするのに1分かかっている。これがビルド制限にカウントされるかどうかだけは不明。
引き続き検証する。