手动安装
编辑页面
了解如何通过这些详细说明将 Expo Router 添加到现有项目中。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
如果你已经有一个现有项目,并且想添加 Expo Router,请按照以下步骤操作。对于新项目,请参阅介绍指南中的 Quick start。
前置条件
请确保你的电脑已配置好运行 Expo 应用。
1
2
设置入口点
对于 main 属性,请在 package.json 中将其值设为 expo-router/entry。初始客户端文件是 src/app/_layout.tsx(如果未使用 src 目录,则为 app/_layout.tsx)。
package.json
{ "main": "expo-router/entry" }
自定义入口点以初始化并加载副作用
你可以在 Expo Router 项目中创建一个自定义入口点,在应用加载根布局(src/app/_layout.tsx)之前初始化并加载副作用。下面是一些常见的自定义入口点使用场景:
- 初始化全局服务,例如分析、错误报告等。
- 设置 polyfill
- 使用来自
react-native的LogBox忽略特定日志
-
在项目根目录下创建一个新文件,例如 index.js。创建此文件后,项目结构应如下所示:
srcapp_layout.tsxindex.jspackage.jsonOther project files -
在文件中导入或添加你的自定义配置。然后,导入
expo-router/entry来注册应用入口。记住一定要最后导入它,以确保在应用渲染之前所有配置都已正确设置。index.js// 首先导入副作用和服务 // 初始化服务 // 通过 Expo Router 注册应用入口 import 'expo-router/entry'; -
更新 package.json 中的
main属性,使其指向新的入口文件。package.json{ "main": "index.js" }
3
4
5
配置路径别名
如果你正在使用 src 目录,请在 tsconfig.json 中添加路径别名,这样你就可以使用像 @/components/button 这样的简短导入路径,而不是相对路径:
tsconfig.json
{ "extends": "expo/tsconfig.base", "compilerOptions": { "strict": true, "paths": { "@/*": ["./src/*"] } }, "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"] }
上面的示例中,@/* 别名映射到 src 目录。