我在 Github Enterprise 上有一个 Lerna monorepo,它目前有两个 npm 包,我正试图将它们发布到同一个 repo 下的 Github 包注册表。
作为参考,它们是:
- github.com/mycompany/package-a
- github.com/mycompany/package-b
所以现在我的 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",
"repository": {
"url": "ssh://git@github.com:mycompany/monorepo.git"
},
"publishConfig": {
"registry": "https://npm.pkg.github.com/"
},
因此,您会注意到它们都具有与推荐的存储库相同的 URL。
第一个问题:一个是我的公司已经有repos调用package-a
和package-b
. 似乎您不能与 monorepo 中的包和 monorepo 之外的包发生命名冲突。¹
第二个也是更重要的问题: 这似乎根本不适合我。我在他们各自的package.json
文件中重命名了包以避免命名冲突package-a-mono
,package-b-mono
我真的不想这样做,但我只是想让它工作。尝试在存储库本身lerna publish
或npm 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
. 但从那时起,我收到错误lerna ERR! E422 Package "package-a" is already associated with another repository.
Nothing changed,我无法将另一个版本发布到同一个repo。