使用私有 npm 包

编辑页面

了解如何配置 EAS Build 以使用私有 npm 包。


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

EAS Build 对在你的项目中使用私有 npm 包提供完整支持。这些包可以发布到 npm(如果你有 Pro/Teams 方案),也可以发布到私有 registry(例如,使用自托管的 Verdaccio)。

在开始构建之前,你需要先配置你的项目,以便向 EAS Build 提供你的 npm token。

默认的 npm 配置

默认情况下,EAS Build 使用自托管的 npm 缓存,以加快所有构建的依赖安装速度。每个 EAS Build builder 都为每个平台配置了一个 .npmrc 文件:

Android

registry=http://npm-cache-service.worker-infra-production.svc.cluster.local:4873

iOS

registry=http://10.254.24.8:4873

发布到 npm 的私有包

如果你的项目使用的是发布到 npm 的私有包,你需要向 EAS Build 提供一个 只读 npm token,以便它能够成功安装你的依赖。

推荐的做法是将 NPM_TOKEN secret 添加到你的账户或项目的 secrets 中:

有关如何执行此操作的更多信息,请参阅 secret environment variables

当 EAS 检测到在构建期间可用 NPM_TOKEN 环境变量时,它会自动创建如下 .npmrc

.npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN} registry=https://registry.npmjs.org/

不过,这仅在项目根目录中不存在 .npmrc 时才会发生。如果你已经有这个文件,则需要手动更新它。

你可以通过查看构建日志并查找 Prepare project 构建阶段来验证是否生效:

发布到私有 registry 的包

如果你使用的是私有 npm registry,例如自托管的 Verdaccio,你需要手动配置 .npmrc

在项目根目录中创建一个 .npmrc 文件,并写入以下内容:

.npmrc
registry=__REPLACE_WITH_REGISTRY_URL__

如果你的 registry 需要认证,你还需要提供 token。例如,如果你的 registry URL 是 https://registry.johndoe.com/,则将文件更新为:

.npmrc
//registry.johndoe.com/:_authToken=${NPM_TOKEN} registry=https://registry.johndoe.com/

私有 npm 包和私有 registry 都使用

这是一个高级示例。

私有 npm 包始终是 作用域包。例如,如果你的 npm 用户名是 johndoe,那么私有自托管 registry URL 就是 https://registry.johndoe.com/。如果你想从这两个来源安装依赖,请在项目根目录中创建一个 .npmrc,内容如下:

.npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN} @johndoe:registry=https://registry.npmjs.org/ registry=https://registry.johndoe.com/

私有仓库中的子模块

如果你在私有仓库中有一个子模块,你需要通过配置 SSH 密钥来初始化它。更多信息请参阅 子模块初始化