目录

自定义 Nitro 查找源文件和写入构建输出的位置。

Note

本页所有示例都假设已在 nitro.config.ts 中导入以下内容:

import { defineConfig } from "nitro";

#workspaceDir

项目工作区根目录。

未设置 workspaceDir 选项时,会自动检测工作区目录(例如 pnpm 工作区)。

export default defineConfig({
  workspaceDir: "../", // monorepo root
});

#rootDir

项目主目录。

export default defineConfig({
  rootDir: "./src/server",
});

#serverDir

  • 类型:boolean | "./" | "./server" | string
  • 默认值:false

用于扫描 api/、routes/、plugins/、utils/、middleware/、modules/ 和 tasks/ 目录的服务器目录。

设为 false 时会禁用自动目录扫描。设为 "./" 可使用根目录,设为 "./server" 则使用 server/ 子目录。

export default defineConfig({
  serverDir: "./server", // scan server/ subdirectory
});

#scanDirs

  • 默认值:[](为空时会扫描服务器源目录)

要扫描并自动注册文件(例如 API 路由)的目录列表。

export default defineConfig({
  scanDirs: ["./modules/auth/api", "./modules/billing/api"],
});

#apiDir

  • 默认值:"api"

指定用于扫描 API 路由处理器的其他目录。

export default defineConfig({
  apiDir: "endpoints", // scan endpoints/ instead of api/
});

#routesDir

  • 默认值:"routes"

指定用于扫描路由处理器的其他目录。

export default defineConfig({
  routesDir: "pages", // scan pages/ instead of routes/
});

#buildDir

  • 默认值:"node_modules/.nitro"

Nitro 生成构建相关文件时使用的临时工作目录。

export default defineConfig({
  buildDir: ".nitro", // use .nitro/ in project root
});

#output

  • 默认值:{ dir: '.output', serverDir: '.output/server', publicDir: '.output/public' }

生产构建产物的输出目录。

export default defineConfig({
  output: {
    dir: "dist",
    serverDir: "dist/server",
    publicDir: "dist/public",
  },
});

#ignore

  • 默认值:[]

扫描目录时要忽略的 glob 模式数组。

export default defineConfig({
  ignore: [
    "routes/_legacy/**", // skip legacy route handlers
  ],
});

测试文件(*.test.ts、*.spec.ts)和类型声明(*.d.ts)始终会被忽略。

#scanSuffixes

  • 默认值:[]

要保留在已扫描文件名中的额外点分后缀。Nitro 会将已扫描文件名末尾的小写后缀(例如 .get 或 .dev)作为保留后缀。已知文件扩展名(例如 .json、.md、.xml)始终会保留。参见保留后缀。

export default defineConfig({
  scanSuffixes: ["prompt"], // routes/system.prompt.ts -> /system.prompt
});