【问题标题】:Google Artifact Registry: Unable to publish package with the same version even after package deletionGoogle Artifact Registry:即使在包删除后也无法发布具有相同版本的包
【发布时间】:2022-04-15 18:53:52
【问题描述】:

我正在尝试将 npm 包发布到 google artifact registry (GAR)。

已经发布了一个相同版本的包,但是我已经从 GAR 中手动删除了它。

npm view <package-name>@0.1.3

<empty response>

但仍然无法发布包。

npm publish

npm ERR! code E400
npm ERR! 400 Bad Request - PUT https://<package-url> - Requested version(0.1.3) already exists.

看起来它已被缓存在某个地方。如果是这样,有没有可能清除缓存?

【问题讨论】:

    标签: npm google-cloud-platform google-artifact-registry


    【解决方案1】:

    实际上 Cloud Artifacts Registry 不允许这样做,根据this documentation:

    您只能发布一次包的特定版本。这是一个 npm 限制,以确保已发布包版本的内容始终相同。因此,您不能:

    • 通过将包版本再次发布到存储库来覆盖它
    • 从存储库中删除软件包或其版本,然后发布具有相同名称和版本号的软件包

    因此,您必须创建另一个版本才能发布包。

    【讨论】:

    • 这对于公共包来说非常有意义,但是对于私有注册表,我期望有更多的灵活性。但无论如何,谢谢你的回答。
    • 没问题,很高兴为您提供帮助,顺便说一句,如果您愿意,可以通过在Google's Issue Tracker 中打开功能请求来提出更改的理由,这样他们就可以考虑产品团队。
    【解决方案2】:

    警告:对于包含相当多的包及其版本的现有存储库,这不是解决方案!

    仍有办法做到这一点,但它需要删除并重新创建整个存储库。 所以:

    1. 删除整个存储库
    2. 使用相同的名称和选项重新创建存储库。

    【讨论】:

      猜你喜欢
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2013-05-25
      • 2021-04-13
      • 2015-07-09
      • 1970-01-01
      相关资源
      最近更新 更多