35

開発中のプロジェクトの lerna リポジトリがあります。相互に依存するいくつかのパッケージがあります。開発を容易にするために、どのパッケージも公開されておらず、互いに最新バージョンに依存しています。

ディレクトリツリー

foo/
  packages/
    core/
      package.json
    errors/
      package.json

foo/パッケージ/コア/package.json

{
  ...
  dependencies: {
    "@foo/errors": "*"
  }
}

barlerna プロジェクトをテストするために使用している別のプロジェクト があります。現在、ローカルの依存関係を使用してその依存関係にリンクしていますfile::

バー/package.json

{
  ...
  dependencies: {
    "@foo/core": "../foo/packages/core"
  }
}

このアプローチは、私に厄介な世界をもたらしました。

  • npm を使用すると、常にENOENT .DELETE エラーが発生します。私のpackage-lock.jsonを削除して再インストールすると、私の人生は何年もかかりました。
  • 糸を使用して、私はできませんでしyarn installbar。Yarn は への依存関係をたどり、 にfile:依存し@foo/coreていることを確認し、@foo/errorslerna のシンボリック リンクについては認識していません。これにより失敗し、見つからないことがわかります@foo/errors

これにより、このプロジェクトの実際のコードを書くことは、この混乱した依存関係管理の二次的なものになりました。

このプロジェクト構造を機能させるにはどうすればよいですか (かなり単純だと思いますか?)。この時点で、lerna/yarn/npm/pnpm/shell scripts/MS DOS を開きます。

4

4 に答える 4