Github Enterprise に Lerna モノレポがあり、現在、同じレポの下で Github パッケージ レジストリに公開しようとしている 2 つの npm パッケージがあります。
参考までに、次のように言います。
- 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 が同じであることがわかります。
最初の問題: 1 つは、私の会社には既にpackage-a
andという名前のリポジトリがあることpackage-b
です。monorepo 内のパッケージと monorepo 外のパッケージとの名前の競合はないようです。¹
2番目のより重要な問題: これは私にはまったく機能しないようです。名前の衝突を避けるために、それぞれpackage.json
のファイルでパッケージの名前を変更しましたが、実際にはやりたくないのですが、機能させようとしています。リポジトリ自体のいずれかまたは内部で実行しようとすると、404 が発生します。変更するように指示するという点で、実際にそのフィールドを読み取ろうとしているわけではありません。package-a-mono
package-b-mono
lerna publish
npm publish
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.
誰かがこれに遭遇して解決策を見つけましたか?
¹やや悪いことに、何らかの理由で、これを初めて実行したときに、実際にパッケージが の monorepo に公開されましたpackage-a
。しかし、それ以降、何も変更されていないというエラーが発生lerna ERR! E422 Package "package-a" is already associated with another repository.
し、別のバージョンを同じリポジトリに公開できませんでした。