13

Github Enterprise に Lerna モノレポがあり、現在、同じレポの下で Github パッケージ レジストリに公開しようとしている 2 つの npm パッケージがあります。

参考までに、次のように言います。

  • 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 -同じリポジトリ

したがって、私の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-aandという名前のリポジトリがあることpackage-bです。monorepo 内のパッケージと monorepo 外のパッケージとの名前の競合はないようです。¹

2番目のより重要な問題: これは私にはまったく機能しないようです。名前の衝突を避けるために、それぞれpackage.jsonのファイルでパッケージの名前を変更しましたが、実際にはやりたくないのですが、機能させようとしています。リポジトリ自体のいずれかまたは内部で実行しようとすると、404 が発生します。変更するように指示するという点で、実際にそのフィールドを読み取ろうとしているわけではありません。package-a-monopackage-b-monolerna publishnpm publishrepository.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.し、別のバージョンを同じリポジトリに公開できませんでした。

4

3 に答える 3