This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
使用 Bun
编辑页面
关于在 Expo 和 EAS 中使用 Bun 的指南。
Bun 是一个 JavaScript 运行时,也是 Node.js 的直接替代品。在 Expo 项目中,Bun 可用于安装 npm 包并运行 Node.js 脚本。使用 Bun 的好处包括:比 npm、pnpm 或 Yarn 更快的包安装速度,以及至少比 Node.js 快 4 倍的启动时间,这会极大提升你的本地开发体验。
2 requirements
2 requirements
1.
安装 Bun 以创建新应用。
2.
bun create expo 和
bun expo prebuild 命令仍然需要一个 Node.js(LTS)版本,它们使用 npm pack 来下载项目模板。
使用 Bun 启动一个新的 Expo 项目
要创建一个新项目,运行以下命令:
- bun create expo-app my-app你也可以使用 bun run 运行任何 package.json 脚本:
- bun run ios要安装任何 Expo 库,你可以使用 bun expo install:
- bun expo install expo-audio在 EAS 构建中使用 Bun
EAS 会根据你代码库中的锁文件来决定使用哪个包管理器。如果你希望 EAS 使用 Bun,请在你的代码库中运行 bun install。这会创建一个 Bun 锁文件:在 Bun 1.2 及更新版本中为 bun.lock,而在使用较旧版本 Bun 时为 bun.lockb。只要你的代码库中存在其中任意一个锁文件,Bun 就会被用作构建的包管理器。请确保删除由其他包管理器生成的任何锁文件。
在 EAS 上自定义 Bun 版本
使用 EAS 时,Bun 会默认安装。请参阅 Android 服务器镜像 和 iOS 服务器镜像,了解你的构建镜像使用的是哪个 Bun 版本。
要在 EAS 中使用 Bun 的精确版本,请在 eas.json 中构建配置的 build profile 下添加版本号。例如,下面的配置为 development 构建配置指定了 Bun 版本 1.0.0:
{ "build": { "development": { "bun": "1.0.0" %%placeholder-start%%... %%placeholder-end%% } %%placeholder-start%%... %%placeholder-end%% } }
受信任的依赖项
与其他包管理器不同,Bun 不会自动执行已安装库中的生命周期脚本,因为这被认为存在安全风险。不过,如果你安装的某个包有一个你希望运行的 postinstall 脚本,你必须在你的 package.json 中的 trustedDependencies 数组里显式声明该库。
例如,如果你安装了 packageA,它依赖于 packageB,而 packageB 有一个 postinstall 脚本,那么你必须在 trustedDependencies 中添加 packageB。
要在你的 package.json 中添加受信任的依赖项,请添加:
"trustedDependencies": ["your-dependency"]
然后,删除你的 lockfile 并重新安装依赖项:
- rm -rf node_modules- rm bun.lock bun.lockb- bun install常见错误
在使用 Sentry 和 Bun 时 EAS Build 失败
如果你正在使用 sentry-expo 或 @sentry/react-native,它们依赖于 @sentry/cli,后者会在构建期间将 source maps 上传到 Sentry。@sentry/cli 包有一个 postinstall 脚本,需要运行它,“上传 source maps”脚本才会可用。
要解决此问题,请将 @sentry/cli 添加到 package.json 中的可信依赖项数组:
"trustedDependencies": ["@sentry/cli"]