了解如何在 Expo Router 项目中使用顶层 src 目录。
随着项目的发展,将所有包含应用代码的目录移动到单个 src 目录中会很有帮助。Expo Router 开箱即用地支持此功能。
¥As your project grows, it can be helpful to move all the directories containing application code into a single src directory. Expo Router supports this out of the box.
src
app
_layout.tsx
index.tsx
components
button.tsx
package.json
只需将你的应用目录移动到 src/app 并重新启动开发服务器即可。
¥Simply move your app directory to src/app and restart the development server.
-
npx expo start
# Or export for production
-
npx expo export
注意:
¥Notes:
配置文件 (app.config.tsx、app.json、package.json、metro.config.js、tsconfig.json) 应保留在根目录中。
¥The config files (app.config.tsx, app.json, package.json, metro.config.js, tsconfig.json) should remain in the root directory.
src/app 目录的优先级高于应用根目录。如果两者都有,则仅使用 src/app 目录。
¥The src/app directory takes higher precedence than the root app directory. Only the src/app directory will be used if you have both.
公共目录应保留在根目录中。
¥The public directory should remain in the root directory.
静态渲染将自动使用 src/app 目录(如果存在)。
¥Static rendering will automatically use the src/app directory if it exists.
你可以考虑更新任何 类型别名 以指向 src 目录而不是根目录。
¥You may consider updating any type aliases to point to the src directory instead of the root directory.
¥Custom directory
强烈建议不要更改默认根目录。我们不会接受有关具有自定义根目录的项目的错误报告。
你可以使用 Expo 路由配置插件危险地自定义根目录。下面将根目录更改为 src/routes,相对于项目根目录。
¥You can dangerously customize the root directory using the Expo Router Config Plugin. The following will change the root directory to src/routes, relative to the project root.
{
"plugins": [
[
"expo-router",
{
"root": "./src/routes"
}
]
]
}
这可能会导致意外的行为。许多工具假定根目录是 ./app 或 ./src/app。只有 Expo CLI 的确切版本中的工具才会尊重配置插件。
¥This may lead to unexpected behavior. Many tools assume the root directory to be either ./app or ./src/app. Only tools in the exact version of Expo CLI will respect the config plugin.