在 AWS CodeArtifact 中引用私有包时 AWS Amplify 构建出错

Error in AWS Amplify build when referencing private package in AWS CodeArtifact

我有一个已发布到 AWS CodeArtifact 的私有 npm 包,因此我可以在 ReactJS 应用程序和 NodeJS/Express API 应用程序中使用它。

此包的版本 1.0.0 已发布到 CodeArtifact。

在我的 ReactJS 应用程序中,我在 package.json 中有一个依赖项,如 "@name-space/name-of-package": "^1.0.0"

我已经更改了@name-space 的注册表以指向 CodeArtifact URL。对于所有其他包,我仍在使用默认的 NPM 注册表 (https://registry.npmjs.com)。我在我的 ReactJs 项目中通过 .npmrc 文件配置了这个。

当我尝试通过 AWS Amplify 部署我的 ReactJS 应用程序时,我在构建中遇到错误: 错误!无效版本:^1.0.0

我对在这里使用的几乎所有内容都是新手 - 创建私有包、CodeArtifact 和 Amplify,所以我不确定我是否遗漏了任何步骤。

我尝试从 ReactJS package.json 的版本中删除“^”,但我得到 ERR!尝试构建时版本无效:1.0.0

知道如何消除此错误并成功构建通过 Amplify 部署的 ReactJS 应用程序吗?

您还需要更新 amplify.yml 才能登录 CodeArtifact。这是一个例子...

frontend:
  phases:
    preBuild:
      commands:
        - pip3 install awscli --upgrade --user
        - aws codeartifact login --tool npm --repository repository_name --domain domain_name --domain-owner domain_owner_id
        - npm ci