🤔

Next.js 13 ではdevDependenciesは必要ないのか

2023/08/11に公開

はじめに

どうも、Buzoです。
最近create-next-appを使ってNext.jsのプロジェクトを作成しました。
そのときに今まではpackage.jsondevDependenciesに入れていたものが全てdependenciesに入っていたので、どうゆうことなのか調べてみました。

// Next 12
  "dependencies": {
    "next": "12.1.2",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  },
  "devDependencies": {
    "@types/node": "17.0.23",
    "@types/react": "17.0.43",
    "@types/react-dom": "17.0.14",
    "eslint": "8.12.0",
    "eslint-config-next": "12.1.2",
    "typescript": "4.6.3"
  }

// Next 13
  "dependencies": {
    "@types/node": "18.11.9",
    "@types/react": "18.0.25",
    "@types/react-dom": "18.0.8",
    "eslint": "8.27.0",
    "eslint-config-next": "13.0.2",
    "next": "13.0.2",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "typescript": "4.8.4"
  }

結論

Next 13ではdevDependenciesは不要で、dependenciesのみで大丈夫。
Nextのビルド時にランタイムで必要なファイルを特定することで自動的に出力ファイルのサイズの削減を行なっているとドキュメントに記載があった。
https://nextjs.org/docs/pages/api-reference/next-config-js/output

devDependenciesとは

以下の記事などを参照してください。
https://zenn.dev/jun0723/articles/e6a8dffbb16f02

参考

https://stackoverflow.com/questions/74371000/next-js-13-devdependencies
https://github.com/vercel/vercel/discussions/9013
https://nextjs.org/docs/pages/api-reference/next-config-js/output

Discussion