发布Monthrepo的Github软件包作为组织的一部分

我在Github Enterprise上有一个Lerna monorepo,目前有两个npm软件包,我正尝试将它们发布到同一仓库下的Github软件包注册表中。

作为参考,他们是:

  • github.com/mycompany/package-a
  • github.com/mycompany/package-b

我遵循了以下指示:https://help.github.com/en/github/managing-packages-with-github-packages/configuring-npm-for-use-with-github-packages#publishing-multiple-packages-to-the-same-repository

所以现在我的2个package.json文件如下所示(出于格式化目的而进行了修剪):

"name": "@mycompany/package-a","repository": {
    "url": "ssh://git@github.com:mycompany/monorepo.git"
  },"publishConfig": {
    "registry": "https://npm.pkg.github.com/"
  },
"name": "@mycompany/package-b",

因此,您会注意到它们的存储库URL都与建议的相同。

第一个问题:一个问题是我的公司已经有一个名为package-apackage-b的存储库。看来您不能与monorepo中的软件包和monorepo外部的软件包发生命名冲突。¹

第二个更重要的问题: 这似乎根本不适合我。我在各自的package.json文件中对该包进行了重命名,以避免我确实不想这么做的package-a-monopackage-b-mono的命名冲突,但我只是想使其正常工作。尝试在存储库本身中运行lerna publishnpm publish时得到404。就像它实际上并没有试图读取repository.url字段那样,它告诉您进行修改。

^事实证明这只是暂时的,或者根本不是问题,这仅仅是因为命名冲突。

npm发布输出:

npm ERR! code E404
npm ERR! 404 Not Found - PUT https://npm.pkg.github.com/@mycompany%2fpackage-a - The expected resource was not found.

lerna发布输出:

lerna http fetch PUT 404 https://npm.pkg.github.com/mycompany/@mycompany%2fpackage-a 327ms
lerna ERR! E404 The expected resource was not found.

有人遇到这个问题并找到了解决方案吗?

¹更糟糕的是,由于某种原因,我第一次运行此程序时,实际上确实将软件包发布到package-a的monorepo中。但是从那以后,我得到了错误lerna ERR! E422 Package "package-a" is already associated with another repository.,但没有任何变化,因此我无法将另一个版本发布到相同的仓库中。

jackychen0116 回答:发布Monthrepo的Github软件包作为组织的一部分

这里的问题是我们在组织中有一个与要发布的软件包同名的存储库,但它不是那样的。

当我回过头来解决此问题时,我将软件包重命名为与组织中的另一个现有存储库没有冲突,并且按预期工作。

,

我遇到了同样的问题,我必须生成一个具有更多特权的新个人访问令牌。仅read:packageswrite:packages是不够的,您还需要repo

,

此错误的另一个可能原因(在原始问题正文中讨论和排除)是,如果任何软件包的package.json的存储库字段与存储库的git URL不匹配-例如,如果您传输了存储库到另一个组织,或重命名存储库,但没有使用新的URL更新每个软件包的package.json

即使问题出在存储库URL上,错误消息也会在https://npm.pkg.github.com/@org/package-name上报告404。

(贷记jonas-reif's comment

本文链接:https://www.f2er.com/2811755.html

大家都在问