Tailwind Logo

XM Cloud - sxastarter の Path の記述を @/ に統一する

Next.js

公開日: 2024-09-24

XM Cloud のサンプルとなる sxastarter ではよく利用するパスに関して、簡単に指定できるように tsconfig.json で path の定義が追加されています。これを今回は個人の好みですが、 @/ で記述する形に統一していきます。

tsconfig.json の設定

この設定は Next.js というより Typescript の設定になります。まず sxastarter のコンパイルオプションに関して、初期値では以下のように設定されています。

JSON
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "components/*": ["src/components/*"],
      "lib/*": ["src/lib/*"],
      "temp/*": ["src/temp/*"],
      "assets/*": ["src/assets/*"],
      "graphql-types": ["node_modules/@types/graphql-let/__generated__/__types__"],
      "react": ["node_modules/react"]
    },

これにより、毎回 src を記述しなくても明示的にパスを記述できる点、そしてコードの可視性が高まるというのがあります。

最近の Next.js のデフォルトの値は以下のようになっています。

JSON
    "paths": {
      "@/*": ["./src/*"]
    }

そこで、個別に components などをしているコードに対して、@/components という記述で動作するように、path に関して補正していきます。まず、tsconfig.json に関しては以下のように変更しました。

JSON
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "components/*": ["src/components/*"],
      "lib/*": ["src/lib/*"],
      "temp/*": ["src/temp/*"],
      "graphql-types": ["node_modules/@types/graphql-let/__generated__/__types__"],
      "react": ["node_modules/react"],
      "@/*": ["./src/*"]
    },

既存のコードのパスを変更するのは手間がかかるため、components 、lib および temp はそのままとします。assets のフォルダは、Next.js の TailwindCSS のサンプルと同じようにフォルダを src\tailwindcss\src\styles として変更します。

このため、スタイルシートを読み込んでいる src\tailwindcss\src\pages\_app.tsx にて、新しいパスで読み込みができるように以下のように書き換えます。

TypeScript
import '@/styles/globals.css';

まとめ

個人的には Next.js の初期設定の @/ を使えるようにしたいという形で、簡単ではありますがこの変更をしました。src の下でコードを記述している場合は、この変更をしておくといいと思います。

関連タグ