create-expo-app

编辑页面

一个命令行工具,用于创建新的 Expo 和 React Native 项目。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

create-expo-app 是一个命令行工具,用于创建和设置一个新的 Expo 和 React Native 项目。该工具通过提供多种模板来简化初始化流程,使你无需手动配置即可快速开始。

创建新项目

要创建新项目,请运行以下命令:

Terminal
npx create-expo-app@latest --template default@sdk-55

注意: 在 SDK 55 过渡期内,不带 --template 标志的 create-expo-app@latest 会创建一个 SDK 54 项目。如果你计划在实体设备上使用 Expo Go,请使用 SDK 54 项目。否则,请使用 --template default@sdk-55 来创建 SDK 55 项目。

运行上述命令后,系统会提示你输入项目的应用名称。这个应用名称也会用于 app config 的 name 属性。

Terminal
你的应用名称是什么? my-app

选项

使用以下选项来自定义命令行为。

--yes

使用默认选项创建新项目。

--no-install

跳过安装 npm 依赖或 CocoaPods。

--no-agents-md

跳过生成 AGENTS.mdCLAUDE.md.claude/settings.json。默认情况下,create-expo-app 会生成这些文件,以便 AI 编码代理(例如 Claude Code)能够自动获得 Expo 特定上下文并配置 expo skills 插件。生成的 AGENTS.md 会指向与你项目 SDK 版本匹配的分版本 Expo 文档。

--template

使用 Node Package Manager 运行 create-expo-app 会使用默认模板初始化并设置一个新的 Expo 项目。

你可以使用 --template 选项选择以下模板之一,也可以将其作为该选项的参数传入。例如,--template default

信息 想要更多模板吗?请查看 --example 选项,以使用展示特定功能和集成的示例应用之一来初始化你的项目。

模板描述
default默认模板。专为构建多页面应用而设计。包含推荐工具,如 Expo CLI、已启用的 Expo Router 库和 TypeScript 配置。适用于大多数应用。
blank安装最低必需的 npm 依赖,但不配置导航。
blank-typescript启用 TypeScript 的空白模板。
tabs安装并配置基于文件的路由,启用 Expo Router 和 TypeScript。
bare-minimum一个生成了原生目录(androidios)的空白模板。会在设置过程中运行 npx expo prebuild

--example

使用此选项可以通过 expo/examples 中的示例来初始化项目。

例如:

  • 运行 npx create-expo-app --example with-router 会设置一个使用 Expo Router 库的项目
  • 运行 npx create-expo-app --example with-react-navigation 会设置一个类似默认模板的项目,但配置为使用原生的 React Navigation 库

--version

打印版本号并退出。

--help

打印可用选项列表并退出。

Node Package Managers 支持

使用 create-expo-app 创建新项目时,也会处理为特定 Node Package Manager 所需的额外配置。

如果你正在从一个包管理器迁移到另一个包管理器,你需要在项目中手动完成额外配置。如果你正在使用 EAS,你也需要手动为任何额外必需步骤配置项目。

每种包管理器的所有额外步骤如下所列。

npm

本地安装

npm 是作为 Node.js 安装的一部分提供的。安装说明请参见 Node.js 文档

EAS 安装

如果项目目录包含 package-lock.json,则默认支持。

Yarn 1 (Classic)

本地安装

Yarn 1 (Classic) 通常作为 npm 的全局依赖安装。安装说明请参见 Yarn 1 文档

EAS 安装

如果项目目录包含 yarn.lock,则默认支持。

Yarn 2+ (Modern)

本地安装

安装说明请参见 Yarn 文档

Yarn 2+ 处理包管理的方式与 Yarn 1 不同。Yarn 2+ 的核心变化之一是 Plug'n'Play (PnP) 节点链接模型,而该模型无法与 React Native 配合使用。

默认情况下,使用 create-expo-app 和 Yarn 2+ 创建的项目会使用 nodeLinker,并将其值设为 node-modules 来安装依赖。

.yarnrc.yml
nodeLinker: node-modules

EAS 安装

EAS 上的 Yarn Modern 需要为构建启用 Corepack。在 eas.json 的构建配置中将 corepack 设为 true

eas.json
{ "build": { "production": { "corepack": true } } }

然后,使用 packageManager 字段在项目的 package.json 中固定 Yarn 版本。在本地运行 yarn set version <version> 会为你更新此字段:

package.json
{ "packageManager": "yarn@4.14.1" }

添加以上两项配置后,当 EAS 安装依赖时,Corepack 会自动下载并使用固定的 Yarn 版本。

pnpm

本地安装

需要安装 Node.js。安装说明请参见 pnpm 文档

默认情况下,使用 create-expo-app 和 pnpm 创建的项目会使用 nodeLinker,并将其值设为 hoisted 来安装依赖。

pnpm-workspace.yaml
nodeLinker: hoisted

信息SDK 54 及更高版本中,Expo 支持隔离安装,如果你更喜欢使用隔离依赖,可以删除 nodeLinker 设置。

EAS 安装

如果项目目录包含 pnpm-lock.yaml,则默认支持。

Bun

有关使用 bun 创建新的 Expo 项目、从其他包管理器迁移以及在 EAS 中使用的详细信息,请参见 Bun 指南。