项目结构与组织方式

本页全面介绍了 Next.js 中所有文件夹与文件约定,并提供项目组织建议。

文件夹与文件约定

顶级文件夹

顶级文件夹用于组织应用程序代码和静态资源。

路由段与路径段对应关系
app应用路由 (App Router)
pages页面路由 (Pages Router)
public静态资源文件
src可选的应用程序源代码文件夹

顶级文件

顶级文件用于配置应用程序、管理依赖项、运行中间件、集成监控工具以及定义环境变量。

Next.js 相关
next.config.jsNext.js 配置文件
package.json项目依赖项与脚本
instrumentation.tsOpenTelemetry 与性能监控文件
middleware.tsNext.js 请求中间件
.env环境变量
.env.local本地环境变量
.env.production生产环境变量
.env.development开发环境变量
.eslintrc.jsonESLint 配置文件
.gitignoreGit 忽略文件列表
next-env.d.tsNext.js 的 TypeScript 声明文件
tsconfig.jsonTypeScript 配置文件
jsconfig.jsonJavaScript 配置文件

文件约定

_app.js .jsx .tsx自定义 App 组件
_document.js .jsx .tsx自定义 Document
_error.js .jsx .tsx自定义错误页面
404.js .jsx .tsx404 错误页面
500.js .jsx .tsx500 错误页面

路由

文件夹约定
index.js .jsx .tsx首页
folder/index.js .jsx .tsx嵌套页面
文件约定
index.js .jsx .tsx首页
file.js .jsx .tsx嵌套页面

动态路由

文件夹约定
[folder]/index.js .jsx .tsx动态路由段
[...folder]/index.js .jsx .tsx全捕获路由段
[[...folder]]/index.js .jsx .tsx可选全捕获路由段
文件约定
[file].js .jsx .tsx动态路由段
[...file].js .jsx .tsx全捕获路由段
[[...file]].js .jsx .tsx可选全捕获路由段

On this page