GatsbyからNextJSに移行してみた

GatsbyからNextJSに移行してみた

目次

Gatsby5 にしてから…

Gatsby5 にしてから、ビルドに時間が掛かる様になりました。

記事を一つ投稿(markdown ファイル + eyecatch 画像)しようとするだけで、数十分掛かる…といった感じです。

(略)
info bootstrap finished - 13.497s
success write out requires - 0.006s
success Building production JavaScript and CSS bundles - 1.338s
Building HTML renderer

Building production JavaScript and CSS bundles まではスムーズに行くのですが、 HTML renderer で時間が取られる。

それが終了して、Running gatsby-plugin-sharp.IMAGE_PROCESSING…の段階に入ると、また時間が取られます。

(略)
success Execute page configs - 1.604s
success Caching Webpack compilations - 0.001s
Running gatsby-plugin-sharp.IMAGE_PROCESSING…
(略)
warn This query took more than 15s to run — which might indicate you're querying
too much or have some unoptimized code:
File path: /XXXXXX/src/pages/{mdx.frontmatter__slug}.j
s?__contentFilePath=/XXXXXX/blog/github-personal-acces
s-tokens/index.mdx
URL path: /github-personal-access-tokens/

動的に作成されるページの分だけ、上記のコードが繰り返し表示され、ビルドが全然終わらない。

ビルド時に最適化された画像を作成しているとは思うんですが、画像の点数もサイズだってそんなに多くないのに…

Gatsby5 の新機能

Gatby5 の新機能は、以下の記事に書かれています。

GraphQL も記事に書かれているコマンドを実行して、新しい書き方に変更済みです。

変更後の GraphQL のコードも、チュートリアル等に書かれているサンプルコードとほぼ一緒なので、GraphQL 自体には問題なさそう。

(Gatsby Cloud を使っていないので、効果はあまり期待出来ないけど)Gatsby Slice も使った上でビルドしてみても、同じ様に時間が掛かる…

node のバージョンを色々変更(v18.0.0〜v18.14.0)してみても、結果は同じ。

NextJS で試してみる

以前に NextJS で markdown ファイルを読み込んで表示させるブログを作成していたので、試しに Gatsby のブログ記事を NextJS に持って行って、画像のパスなどを修正して、ビルドしてみると…

十数秒でビルドが終わった…

えっ、何で?

ちょっと前にサーバーの OS を CentOS から RockyLinux に変更したけど、Gatsby にだけ影響あるとかは考えにくいし…

Gatsby Cloud を使えば、ビルドもサクッと終わるのかもしれないんですけど…

yarn install も NextJS だと(プラグインとかそんなに使っていないので)サクッと終わったし、これなら NextJS でいいんじゃないかと。

なので、暫くは NextJS に切り替えてやってみようかと思っています。