React Router 框架配置文件,允许您自定义 React Router 应用程序的各个方面,如服务器端渲染、目录位置和构建设置。
import type { Config } from "@react-router/dev/config";
export default {
appDirectory: "app",
buildDirectory: "build",
ssr: true,
prerender: ["/", "/about"],
} satisfies Config;
appDirectoryapp 目录的路径,相对于根目录。默认为 "app"。
export default {
appDirectory: "src",
} satisfies Config;
basenameReact Router 应用程序的 basename。默认为 "/"。
export default {
basename: "/my-app",
} satisfies Config;
buildDirectory构建目录的路径,相对于项目。默认为 "build"。
export default {
buildDirectory: "dist",
} satisfies Config;
buildEnd一个函数,在完整的 React Router 构建完成后被调用。
export default {
buildEnd: async ({ buildManifest, serverBuildPath }) => {
// Custom build logic here
console.log("Build completed!");
},
} satisfies Config;
future启用的未来标志,用于选择性地使用即将推出的功能。
有关更多信息,请参阅未来标志。
export default {
future: {
// Enable future flags here
},
} satisfies Config;
prerender一个 URL 数组,用于在构建时将这些 URL 预渲染为 HTML 文件。也可以是一个返回数组的函数,用于动态生成 URL。
有关更多信息,请参阅预渲染。
export default {
// Static array
prerender: ["/", "/about", "/contact"],
// Or dynamic function
prerender: async ({ getStaticPaths }) => {
const paths = await getStaticPaths();
return ["/", ...paths];
},
} satisfies Config;
presetsReact Router 插件配置预设的数组,以便于与其他平台和工具集成。
有关更多信息,请参阅预设。
export default {
presets: [
// Add presets here
],
} satisfies Config;
routeDiscovery配置客户端如何发现和加载路由。默认为 mode: "lazy" 并带有 manifestPath: "/__manifest"。
选项
mode: "lazy" - 路由在用户导航时被发现(默认)manifestPath - 使用 lazy 模式时,清单请求的自定义路径mode: "initial" - 所有路由都包含在初始清单中export default {
// Enable lazy route discovery (default)
routeDiscovery: {
mode: "lazy",
manifestPath: "/__manifest",
},
// Use a custom manifest path
routeDiscovery: {
mode: "lazy",
manifestPath: "/custom-manifest",
},
// Disable lazy discovery and include all routes initially
routeDiscovery: { mode: "initial" },
} satisfies Config;
有关更多信息,请参阅延迟路由发现。
serverBuildFile服务器构建输出的文件名。此文件应以 .js 扩展名结尾,并应部署到您的服务器。默认为 "index.js"。
export default {
serverBuildFile: "server.js",
} satisfies Config;
serverBundles一个用于将路由分配到不同服务器捆绑包的函数。此函数应返回一个服务器捆绑包 ID,该 ID 将用作服务器构建目录中捆绑包的目录名。
有关更多信息,请参阅服务器捆绑包。
export default {
serverBundles: ({ branch }) => {
// Return bundle ID based on route branch
return branch.some((route) => route.id === "admin")
? "admin"
: "main";
},
} satisfies Config;
serverModuleFormat服务器构建的输出格式。默认为 "esm"。
export default {
serverModuleFormat: "cjs", // or "esm"
} satisfies Config;
ssr如果为 true,React Router 将在服务器端渲染您的应用程序。
如果为 false,React Router 将预渲染您的应用程序,并将其保存为带有您的资源的 index.html 文件,以便您的应用程序可以作为 SPA 部署而无需服务器渲染。有关更多信息,请参阅“SPA 模式”。
默认为 true。
export default {
ssr: false, // disabled server-side rendering
} satisfies Config;