TL;DR ローカル ヤーン ワークスペース依存関係のエイリアスを作成するにはどうすればよいですか?
以前に糸のワークスペースを試したことがありますが、成功したことはありません。もう一度試してみます。
入れまし"workspaces": ["packages/*"]
たpackage.json
。
パッケージごとに、命名規則を使用して@-/package-name
命名の競合を防ぎ、内部パッケージの名前空間を気にすることなく使用することにしました。
パッケージを依存関係として追加するとき、解決のためにインターフェイス名を使用するスタイルに従ってきましたが、それを具体的な実装に向けています。これは、yarn ワークスペースを使用する前に行ったことです。
"dependencies": {
"my-interface-name": "file:some/path/to/packages/some-concrete-implementation"
}
これは基本的に、私がコンパイル時の静的依存性注入と呼んでいるものを許可するためです。また、各パッケージが必要に応じてインターフェイスの依存関係に個別に名前を付け、名前の競合を防ぐこともできます。
ただし、yarn ワークスペースでこれを達成する方法がわかりません。@-/some-concrete-implementation
と呼ばれる糸ワークスペース パッケージのエイリアスを作成するにはどうすればよいmy-interface-name
ですか?
私がすでに試したことは成功していません:
- 依存関係を次のように定義する
"my-interface-name": "@-/some-concrete-implementation"}
- 何らかの理由で、yarn が@-/some-concrete-implementation
ローカル ワークスペースではなく npm レジストリを検索するようになる - ワークスペース プロトコルも使用しようとしまし
"my-interface-name": "workspace:@-/some-concrete-implementation"}
たが、npm レジストリでパッケージを探します。
私がまだ試していないことは機能しますが、そもそも糸ワークスペースを使用する利点がなくなります。
"dependencies": {"my-interface-name": "file:../../node_modules/@-/some-concrete-implementation"}"