框架
版本

基于文件的路由 API 参考

TanStack Router 的基于文件的路由非常灵活,可以配置以适应您项目的需求。

配置选项

以下选项可用于配置基于文件的路由:

Warning

不要将 routeFilePrefixrouteFileIgnorePrefixrouteFileIgnorePattern 选项设置为与文件命名约定指南中使用的任何标记匹配,否则您可能会遇到意外行为。

routesDirectory (必需)

这是路由文件所在目录的路径,相对于 cwd(当前工作目录)。

默认情况下,该值设置为以下内容,不能设置为空 stringundefined

txt
./src/routes
./src/routes

generatedRouteTree (必需)

这是生成的路由树将保存到的文件路径,相对于 cwd(当前工作目录)。

默认情况下,该值设置为以下内容,不能设置为空 stringundefined

txt
./src/routeTree.gen.ts
./src/routeTree.gen.ts

如果 disableTypes 设置为 true,生成的路由树将以 .js 扩展名而不是 .ts 扩展名保存。

virtualRouteConfig

此选项用于配置虚拟文件路由功能。有关更多信息,请参阅"虚拟文件路由"指南。

默认情况下,此值设置为 undefined

routeFileIgnorePrefix

此选项用于忽略路由目录中的特定文件和目录。如果您想要"选择性加入"某些不希望被考虑用于路由的文件或目录,这会很有用。

默认情况下,此值设置为 -

使用此选项时,它允许您拥有这样的结构,让您可以将不是路由文件的相关文件放在一起:

txt
src/routes
├── posts
│   ├── -components  // Ignored
│   │   ├── Post.tsx
│   ├── index.tsx
│   ├── route.tsx
src/routes
├── posts
│   ├── -components  // Ignored
│   │   ├── Post.tsx
│   ├── index.tsx
│   ├── route.tsx

routeFileIgnorePattern

此选项用于忽略路由目录中的特定文件和目录。它可以使用正则表达式格式。例如,.((css|const).ts)|test-page 将忽略名称包含 .css.ts.const.tstest-page 的文件/目录。

默认情况下,此值设置为 undefined

routeFilePrefix

此选项用于识别路由目录中的路由文件。这意味着只有以此前缀开头的文件才会被考虑用于路由。

默认情况下,此值设置为 ``,因此路由目录中的所有文件都将被考虑用于路由。

routeToken

如路由概念指南中所述,布局路由在指定路径处渲染,子路由在布局路由内渲染。routeToken 用于识别路由目录中的布局路由文件。

默认情况下,此值设置为 route

🧠 以下文件名将等于相同的运行时 URL:

txt
src/routes/posts.tsx -> /posts
src/routes/posts.route.tsx -> /posts
src/routes/posts/route.tsx -> /posts
src/routes/posts.tsx -> /posts
src/routes/posts.route.tsx -> /posts
src/routes/posts/route.tsx -> /posts

indexToken

如路由概念指南��所述,索引路由是当 URL 路径与父路由完全相同时匹配的路由。indexToken 用于识别路由目录中的索引路由文件。

默认情况下,此值设置为 index

🧠 以下文件名将等于相同的运行时 URL:

txt
src/routes/posts.index.tsx -> /posts/
src/routes/posts/index.tsx -> /posts/
src/routes/posts.index.tsx -> /posts/
src/routes/posts/index.tsx -> /posts/

quoteStyle

当生成路由树以及首次创建新路由时,这些文件将使用您在此处指定的引号样式进行格式化。

默认情况下,此值设置为 single

Tip

您应该从 linter 和格式化程序中忽略生成的路由树文件的路径,以避免冲突。

semicolons

当生成路由树以及首次创建新路由时,如果此选项设置为 true,这些文件将使用分号进行格式化。

默认情况下,此值设置为 false

Tip

您应该从 linter 和格式化程序中忽略生成的路由树文件的路径,以避免冲突。

autoCodeSplitting

此功能仅在您使用 TanStack Router 打包器插件时可用。

此选项用于为非关键路由配置项启用自动代码分割。有关更多信息,请参阅"自动代码分割"指南。

默认情况下,此值设置为 false

Important

TanStack Router 的下一个主要版本(即 v2)将默认此值为 true

disableTypes

此选项用于禁用为路由树生成类型。

如果设置为 true,生成的路由树将不包含任何类型,并将写入为 .js 文件而不是 .ts 文件。

默认情况下,此值设置为 false

addExtensions

此选项将文件扩展名添加到生成的路由树中的路由名称。

默认情况下,此值设置为 false

disableLogging

此选项关闭路由生成过程的控制台日志记录。

默认情况下,此值设置为 false

routeTreeFileHeader

此选项允许您在生成的路由树文件的开头添加内容。

默认情况下,此值设置为:

json
[
  "/* eslint-disable */",
  "// @ts-nocheck",
  "// noinspection JSUnusedGlobalSymbols"
]
[
  "/* eslint-disable */",
  "// @ts-nocheck",
  "// noinspection JSUnusedGlobalSymbols"
]

routeTreeFileFooter

此选项允许您在生成的路由树文件的末尾添加内容。

默认情况下,此值设置为:

json
[]
[]

enableRouteTreeFormatting

此选项启用生成的路由树文件的格式化功能,对于大型项目来说可能会很耗时。

默认情况下,此值设置为 true

tmpDir

原子文件写入(路由文件和生成的路由树文件)通过首先创建临时文件然后将其重命名到实际位置来实现。

此配置选项允许配置用于创建这些临时文件的临时目录路径。 如果是相对路径,它将解析为当前工作目录。 如果未设置此值,将使用 process.env.TSR_TMP_DIR。 如果 process.env.TSR_TMP_DIR 未设置,它将默认为相对于当前工作目录的 .tanstack/tmp