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

GitHub Packages中NPM包因version.ID为空无法弃用或撤销发布的问题

问题描述

我们团队在GitHub Packages上有一个NPM包@team/old-eslint-config,近期打算弃用它改用@team/eslint-config-new。但执行弃用命令时:

npm deprecate @team/old-eslint-config@1.0.0 "package is deprecated, use @team/eslint-config-new"

抛出错误:

400 Bad Request - PUT {package_url} - unmarshalling packument failed: version.ID cannot be empty

执行撤销发布命令时:

npm unpublish @team/old-eslint-config@1.0.0

也出现相同错误。用npm view查看包信息,发现其_id字段为空:

{
  "_id": "",
  "name": "@team/old-eslint-config",
  "dist-tags": {
    "latest": "1.0.1"
  }
}

正常包(如express)的_id则是完整格式(如express@4.18.2)。

已尝试的操作
  • 登录/登出npm账号(已确认权限正常,能发布新版本)
  • 发布包的新版本(操作成功,但问题依旧)
  • 在package.json中手动添加id和_id字段后发布新版本,仍无法解决问题
解决方案建议
  1. 不要手动设置_id字段:_id是npm registry(此处为GitHub Packages)自动生成的元数据,手动在package.json里添加不会生效,发布时会被registry覆盖,无需做此操作。

  2. 尝试通过GitHub UI操作:

    • 打开GitHub仓库对应的Packages页面,找到@team/old-eslint-config包
    • 进入具体版本(如1.0.0)的详情页,查看是否有标记为已弃用或删除版本的选项(GitHub Packages的UI支持直接对版本进行弃用或删除操作,可能绕过命令行的元数据问题)
  3. 联系GitHub支持:如果UI操作也无法解决,说明包的元数据在GitHub Packages侧出现了损坏。这种情况下,用户自身无法修复,需要提交GitHub支持工单,说明包名、版本以及遇到的错误,请求官方帮忙修复元数据(填充缺失的_id字段),之后再尝试执行弃用或撤销命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 02:20:17