本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建存储库后,您可以使用 Yarn 客户端来管理 npm 程序包。
注意
Yarn 1.X
会读取和使用 npm 配置文件 (.npmrc) 中的信息,但 Yarn 2.X
不会。Yarn 2.X
的配置必须在.yarnrc.yml 文件中定义。
使用 aws codeartifact login
命令配置 Yarn 1.X
对于Yarn 1.X
,您可以使用aws codeartifact login
命令配置 Yarn。 CodeArtifact 该login
命令将使用您的存储库端点信息和凭据配置您的 ~/.npmrc 文件。 CodeArtifact 在 Yarn 1.X
中,yarn
命令使用 ~/.npmrc 文件中的配置信息。
使用 login 命令配置 Yarn 1.X
如果您尚未执行此操作,请按照中所述配置您的 AWS 凭据以 AWS CLI与一起使用入门 CodeArtifact。
要成功运行
aws codeartifact login
命令,必须安装 npm。有关安装说明,请参阅 npm 文档中的下载和安装 Node.js 和 npm。 使用
aws codeartifact login
命令获取 CodeArtifact 凭据并配置您的 ~/.npmrc 文件。my_domain
用您的 CodeArtifact 域名替换。111122223333
替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner
。有关更多信息,请参阅 跨账户域。my_repo
替换为您的 CodeArtifact 存储库名称。
aws codeartifact login --tool npm --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
login
命令对 ~/.npmrc 文件进行以下更改:-
CodeArtifact 使用您的 AWS 凭证获取授权令牌后,添加授权令牌。
-
将 npm 注册表设置为通过
--repository
选项指定的存储库。 -
对于 npm 6 及更低版本:添加
"always-auth=true"
,为每个 npm 命令发送授权令牌。
调用
login
后的默认授权期为 12 小时,且必须调用login
来定期刷新令牌。有关使用login
命令创建的授权令牌的更多信息,请参阅 使用 login 命令创建的令牌。-
对于 npm 7.X 和 8.X,必须将
always-auth=true
添加到 ~/.npmrc 文件中才能使用 Yarn。在文本编辑器中打开 ~/.npmrc 文件并在新行中添加
always-auth=true
。
您可以使用 yarn config list
命令来检查 Yarn 是否使用了正确的配置。运行命令后,请检查 info npm
config
部分中的值。其内容看起来类似于以下代码段。
info npm config
{
registry: 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/',
'//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken': 'eyJ2ZXI...',
'always-auth': true
}
使用 yarn config set
命令配置 Yarn 2.X
以下程序详细说明了如何使用 yarn config set
命令从命令行更新 .yarnrc.yml
配置,从而配置 Yarn 2.X
。
从命令行更新 yarnrc.yml
配置
如果您尚未执行此操作,请按照中所述配置您的 AWS 凭据以 AWS CLI与一起使用入门 CodeArtifact。
使用
aws codeartifact get-repository-endpoint
命令获取 CodeArtifact 仓库的终端节点。my_domain
用您的 CodeArtifact 域名替换。111122223333
替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner
。有关更多信息,请参阅 跨账户域。my_repo
替换为您的 CodeArtifact 存储库名称。
aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--format npm使用存储库端点更新 .yarnrc.yml 文件中的
npmRegistryServer
值。yarn config set npmRegistryServer "https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/"获取 CodeArtifact 授权令牌并将其存储在环境变量中。
注意
以下命令适用于 macOS 或 Linux 计算机。有关在 Windows 计算机上配置环境变量的信息,请参阅使用环境变量传递身份验证令牌。
my_domain
用您的 CodeArtifact 域名替换。111122223333
替换为域名所有者的 AWS 账户 ID。如果您要访问您拥有的域中的存储库,则无需包括--domain-owner
。有关更多信息,请参阅 跨账户域。my_repo
替换为您的 CodeArtifact 存储库名称。
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text`-
使用
yarn config set
命令将您的 CodeArtifact 身份验证令牌添加到.yarnrc.yml 文件中。将以下命令中的 URL 替换为步骤 2 中的存储库端点 URL。yarn config set 'npmRegistries["https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}" -
使用
yarn config set
命令将npmAlwaysAuth
的值设置为true
。将以下命令中的 URL 替换为步骤 2 中的存储库端点 URL。yarn config set 'npmRegistries["https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/"].npmAlwaysAuth' "true"
配置完成后,.yarnrc.yml 配置文件的内容应与以下代码段类似。
npmRegistries:
"https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/":
npmAlwaysAuth: true
npmAuthToken: eyJ2ZXI...
npmRegistryServer: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/"
您也可以使用 yarn config
命令来检查 npmRegistries
和 npmRegistryServer
的值。