🔥 NextJSプロジェクトに最適なライブラリトップ12 🏆

カバー画像

過去10年間、gitupcrosspublicのような小さなプロジェクトから大きなプロジェクトまで、フルスタック開発者として様々なものを構築してきました。

その間、以下のことを目的としてさまざまなツールをテストしました。

  1. 生産性を高める
  2. バグを減らす
  3. コードを少なく書く

素晴らしいNextJSのスタッフを開発するのに役立つ、僕が毎日使っているライブラリのリストをまとめました。これらのライブラリが何をすることができるかも説明します。早速見てみましょう。

より良いものに


NextJSで常に必要だったのは、バックグラウンドジョブに関連するすべてのサポートです。

それは、メールの送信やシステムでの新しいユーザーのファンネルの処理など、バックグラウンドで実行されるcronジョブかもしれません。

これにより、外部EC2サーバーやイベントブリッジでサーバレス機能を使って、それらのジョブを処理する別のサーバーを実行する必要があります。
追加のサービスに対して料金を支払うこと(より多くのサービスを管理すること)と、自分自身で水平スケーリングを管理することになります(ある時点で)。

Trigger.devは、NextJS(および他の多くのもの)の上にバックグラウンドジョブを提供することで、それを変えました。
彼らはまた、長時間走るジョブを処理するためにNextJSサーバレスのタイムアウト制限に対処する方法を知っています。

Trigger.devにスターをつけてください 🥰

TriggerDev


2. Prisma

PrismaはNextJS固有のものではありません。データベースで作業するためのORMです。

ORMはDBクエリのための統一されたラッパーです。
適切な構造を保ちつつ、異なるデータベースプロバイダー間での迅速な切り替えを可能にします。

使えるORMはたくさんありますが、PrismaはクエリのためのTypescriptサポートを提供することでユニークです。これによりすべてが100倍速くなります。NextJSはそのデフォルト構成でtypescriptを採用しており、これとぴったり合います。

Prismaにスターをつけてください 🥰

prisma.gif


3. NextAuth.js

あなたがFacebook / Google / GitHub(oAuth)などのどんなサービスプロバイダー認証を実装したい場合。

それぞれのプロバイダーに対して独自の実装を作成するか、Auth0Clerkのような外部サービスを利用する必要があります。

自分でやるつもりなら、NextAuthは豊かな実装を提供しているので、正しいキーを提供するだけで簡単に追加できます。

彼らはまた、ログインしている一度、認証もケアします。
Next.JS認証はPrismaと箱から出してすぐに動作します。

NextAuthにスターをつけてください 🥰

authjs.gif


4. Next-Sitemap

NextJSをサーバーにデプロイしたら、すべてのページをGoogleにインデックス化してもらうための手助けが必要です。

ウェブサイト上のすべてのページについてGoogleに伝えられるといいですね。

そのために、すべてのページをリストしたsitemap.xmlファイルを作成できます。

それにはNext-Sitemapを簡単に使うことができます。

Next-Sitemapにスターをつけてください 🥰

sitemap.gif


5. Next SEO

SEOは、キーワード、説明、ウェブサイトプレビューの画像を提供することによって、様々なクエリのためのGoogleフィードにウェブサイトを登場させるプロセスです。

もし新しいNextJSアプリルーターを使うなら、それが必要じゃないかもしれません。

彼らのexport metadataアプローチやgenerateMetadataを使うことができますが、
古いアプリルーターを使っている場合は、SEOをウェブサイトに追加する最良の方法です。

Next SEOにスターをつけてください 🥰

seo.gif


6. Zod

Zodはオブジェクトバリデーターです(サーバーとクライアントの両方)。
オブジェクトに異なるルールを置いて、後でそれを検証できます。例えばユーザーネームやパスワード、もっと複雑なことに他のキーへの配列長や条件などです。ZodはNextJS固有のものではありません。

年間を通じて、Yupclass-validatorのような多くのオブジェクトバリデーターを見てきました。

Yupは、Zodほどメンテナンスされていないように見えますし、class-validatorはNestJSのようなものを使うときに強力です - ですから、Zodを選ぶのが一番です。

Zodにスターをつけてください 🥰

zod.gif


7. React-hook-form

Zodがオブジェクトをバリデートできる一方で、カスタマイズされたロジックなしでクライアントとバックエンドに影響を与えることはありません。

React-hook-formは、クライアントバリデーション(インプットでエラーを表示し、インプット状態の管理と提出の管理)のための素晴らしいプロジェクトです。

もちろん、ZodをReact-hook-form用のバリデータとして使うことができます。

React Hook Formにスターをつけてください 🥰

hookform.gif


8. tRPC

tRPCを使ったことは認めなければなりませんが、今日多くの注目を浴びているようです。

Prismaと同様のコンセプトで、リクエストとレスポンス用インターフェースを生成するので、フロントエンドの呼び出しを使用すると、そのオートコンプリートが得られます。

バグの可能性を減らすのに大変です - 例えばバックエンドルートを変更した場合、プロジェクトをコンパイルできなくなります - クライアントは存在しないパラメータやレスポンスキーのエラーを返すでしょう。

tRPCにスターをつけてください 🥰

trpc.gif


9. SWRReact-Query

長年、リクエストを送信するための基本ライブラリとしてAxiosとfetchを使ってきました。

SWRとReact-Queryは、これらのライブラリを強化し、フック、キャッシュ、変換などを提供します。

すべてのプロジェクトに強く推奨されます。これらのライブラリはクライアントコンポーネントのためのものです(use client)、サーバコンポーネントのためのものではありません。

React Queryにスターをつけてください 🥰

query.gif


10. lodash

これはNextJS特有のライブラリではありません。
データを変更するためのライブラリですが、flatMapのような素晴らしいネイティブ機能でJavaScriptが年々進歩しても、キーや配列チャンキングによるユニークな配列のようにまだ不足しているものがあります。

私はほぼどんなプロジェクトでもlodashを使っています。

lodashにスターをつけてください 🥰

lodash.gif


11. dayjs

day.jsは、日付、フォーマット、タイムゾーンなどに関連するすべてのことのためのライブラリです。

その一つについて焼かれるかもしれませんが、何年もの間、moment.jsと共に仕事をしてきました。

今、それがもうメンテナンスされていないので、dayjsは良い代替品です。

一部の人々は日程の扱いに新しいJS機能を好むかもしれませんが、まだdayjsのオプションとネイティブJS日付機能の間に大きなギャップが存在すると感じます。

dayjsにスターをつけてください 🥰

scrolldown.gif


12. jsdom

必要不可欠ではありませんが、最近多くのプロジェクトでcheerioの代替として使用しています。

ページの内容全体(<html><body>….</html>)を取り、後で“ネイティブ”なJavaScript DOM関数querySelectorinnerHTMLなどを使って操作できるオブジェクト

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/nevodavid/top-12-libraries-for-your-nextjs-project-1oob