选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

配置并使用 npm CodeArtifact

聚焦模式
配置并使用 npm CodeArtifact - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中创建存储库后 CodeArtifact,可以使用 npm 客户端安装和发布软件包。使用存储库端点和授权令牌配置 npm 的推荐方法是使用 aws codeartifact login 命令。也可以手动配置 npm。

使用 login 命令配置 npm

使用 aws codeartifact login 命令提取用于 npm 的凭证。

注意

如果您要访问您拥有的域中的存储库,则无需包括 --domain-owner。有关更多信息,请参阅 跨账户域

重要

如果您使用的是 npm 10.x 或更高版本,则必须使用 2.9.5 或更高 AWS CLI 版本才能成功运行该命令。aws codeartifact login

aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo

此命令对您的 ~/.npmrc 文件进行以下更改:

  • CodeArtifact 使用您的 AWS 凭证获取授权令牌后,添加授权令牌。

  • 将 npm 注册表设置为通过 --repository 选项指定的存储库。

  • 对于 npm 6 及更低版本:添加 "always-auth=true",为每个 npm 命令发送授权令牌。

调用 login 后的默认授权期为 12 小时,且必须调用 login 来定期刷新令牌。有关使用 login 命令创建的授权令牌的更多信息,请参阅 使用 login 命令创建的令牌

不使用 login 命令配置 npm

你可以通过手动更新 npm 配置,在不使用aws codeartifact login命令的情况下使用 CodeArtifact 存储库配置 npm。

不使用 login 命令配置 npm
  1. 在命令行中,获取 CodeArtifact 授权令牌并将其存储在环境变量中。npm 将使用此令牌对您的存储库进行身份验证。 CodeArtifact

    注意

    以下命令适用于 macOS 或 Linux 计算机。有关在 Windows 计算机上配置环境变量的信息,请参阅使用环境变量传递身份验证令牌

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 运行以下命令获取 CodeArtifact 仓库的终端节点。您的存储库端点用于将 npm 指向您的存储库来安装或发布程序包。

    • my_domain用您的 CodeArtifact 域名替换。

    • 111122223333替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括 --domain-owner。有关更多信息,请参阅 跨账户域

    • my_repo替换为您的 CodeArtifact 存储库名称。

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm

    以下 URL 是一个示例存储库端点。

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
    重要

    注册 URL 必须以正斜杠 (/) 结尾。否则,您无法连接到存储库。

  3. 使用npm config set命令为您的 CodeArtifact 存储库设置注册表。将 URL 替换为上一步中的存储库端点 URL。

    npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
    注意

    要使用双堆栈端点,请使用该codeartifact.region.on.aws端点。

  4. 使用 npm config set 命令将您的授权令牌添加到 npm 配置。

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN

    对于 npm 6 或更低版本:要让 npm 始终将身份验证令牌传递给 CodeArtifact,即使对于GET请求也是如此,请将always-auth配置变量设置为。npm config set

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true

示例 npm 配置文件 (.npmrc)

以下是按照上述说明设置 CodeArtifact 注册表端点、添加身份验证令牌和配置后的示例.npmrc文件always-auth

registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/ //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX... //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true

运行 npm 命令

配置 npm 客户端后,您可以运行 npm 命令。假设您的存储库或其中一个上游存储库中存在程序包,则可以使用 npm install 来安装。例如,使用以下命令来安装 lodash 程序包。

npm install lodash

使用以下命令将新的 npm 包发布到 CodeArtifact 存储库。

npm publish

有关如何创建 npm 程序包的信息,请参阅 npm 文档网站上的创建 Node.js 模块。有关支持的 npm 命令列表,请参阅 npm Comm CodeArtifact and Suppor t。

验证 npm 身份验证和授权

调用 npm ping 命令是验证以下项的一种方式:

  • 您已正确配置凭据,以便可以对 CodeArtifact 存储库进行身份验证。

  • 授权配置为您授予 ReadFromRepository 权限。

成功调用 npm ping 后的输出如下所示。

$ npm -d ping npm info it worked if it ends with ok npm info using npm@6.4.1 npm info using node@v9.5.0 npm info attempt registry request try #1 at 4:30:59 PM npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true npm http 200 https:///npm/shared/-/ping?write=true Ping success: {} npm timing npm Completed in 716ms npm info ok

-d 选项会让 npm 输出额外的调试信息,包括存储库 URL。通过这些信息,可以轻松确认 npm 已配置为使用您期望的存储库。

改回默认 npm 注册表

配置 npm 会将 npm 注册表 CodeArtifact 设置为指定的 CodeArtifact 存储库。完成连接后,你可以运行以下命令将 npm 注册表设置回其默认注册表。 CodeArtifact

npm config set registry https://registry.npmjs.com/

解决 npm 8.x 或更高版本中安装缓慢的问题

在 npm 版本 8.x 及更高版本中存在一个已知问题,也即,如果向程序包存储库发出请求,并且存储库将客户端重定向到 Amazon S3 而不是直接流式传输资产,则 npm 客户端可能对于每个依赖项会挂起几分钟。

由于 CodeArtifact 存储库旨在始终将请求重定向到 Amazon S3,因此有时会出现此问题,由于 npm 安装时间长,这会导致构建时间过长。这种行为的实例将以进度条的形式出现,显示达几分钟。

要避免此问题,请在 npm cli 命令中使用 --no-progressprogress=false 标志,如以下示例所示。

npm install lodash --no-progress
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。