You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Yarn.lock的resolved URL使用动态凭证?

AWS CodeArtifact npm包resolved URL过期解决方案

从.npmrc获取当前凭证

AWS CodeArtifact的认证令牌会通过aws codeartifact login命令写入本地.npmrc文件,典型格式如下:

//domain-account_id.d.codeartifact.ap-south-1.amazonaws.com/npm/npm/:always-auth=true
//domain-account_id.d.codeartifact.ap-south-1.amazonaws.com/npm/npm/:_authToken=EXAMPLE_TEMP_TOKEN
registry=https://domain-account_id.d.codeartifact.ap-south-1.amazonaws.com/npm/npm/

直接读取该文件中对应仓库域名下的_authToken字段,即可拿到当前有效的12小时令牌。如果需要重新生成令牌,可执行以下AWS CLI命令:

aws codeartifact get-authorization-token \
  --domain YOUR_DOMAIN \
  --domain-owner YOUR_ACCOUNT_ID \
  --region ap-south-1 \
  --query authorizationToken \
  --output text

从环境变量获取当前凭证

可以通过NPM_AUTH_TOKEN环境变量直接传递CodeArtifact令牌:

  • Linux/macOS临时设置:
export NPM_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain YOUR_DOMAIN --domain-owner YOUR_ACCOUNT_ID --region ap-south-1 --query authorizationToken --output text)
  • Windows PowerShell临时设置:
$Env:NPM_AUTH_TOKEN = aws codeartifact get-authorization-token --domain YOUR_DOMAIN --domain-owner YOUR_ACCOUNT_ID --region ap-south-1 --query authorizationToken --output text

将凭证用于resolved字段

如果lock文件中的resolved URL已过期,可通过以下方式更新:

  1. 确保本地.npmrc或NPM_AUTH_TOKEN环境变量持有有效令牌
  2. 执行yarn install --force或npm install --force,让包管理器重新拉取依赖,自动生成带有效凭证的resolved URL
  3. 若需手动替换,将resolved URL中过期的令牌部分替换为从.npmrc/环境变量获取的新令牌(CodeArtifact的resolved URL格式通常为https://aws:{TOKEN}@{REPO_DOMAIN}/{PACKAGE_PATH})

最佳实践

  • 不要提交带临时令牌的lock文件到版本控制系统,让每个环境在安装前自动获取最新令牌
  • CI/CD流程中,先执行aws codeartifact login更新凭证,再执行依赖安装命令

内容的提问来源于stack exchange,提问作者DilLip_Chowdary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:13:28