現在、相対パスでパッケージからコンポーネントをインポートしています。
<link rel="components" href="packages/packageA/components/login.html">
ただし、パッケージのネストを開始すると、これは適切に機能しなくなります。ここにある小さな例をセットアップしました: https://github.com/nikgraf/nesting-components
パッケージ アプリをビルドしようとすると、次のエラー メッセージが表示されます。
error web/packages/packageA/components/login.html:6:5: exception while reading file "web/packages/packageA/components/packages/packageB/components/button.html", original message:
FileIOException: Cannot open file 'web/packages/packageA/components/packages/packageB/components/button.html' (OS Error: No such file or directory, errno = 2)
<link rel="components" href="packages/packageB/components/button.html">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning web/packages/packageA/components/login.html:12:7: custom element with tag name button not found.
<div is="button"></div>
^^^^^^^^^^^^^^^^^
現在の構造:
アプリ - 依存関係: PackageA
PackageA - 依存関係: PackageB
役立つ背景情報: 私のアプリケーションには、ビルドするいくつかの Dart アプリで使用されるパッケージ A の x-login コンポーネントが含まれています。x-login コンポーネントと一般的にパッケージ A には、アプリケーション用の特定のコードが含まれています。x-login は、パッケージ B にある x-button コンポーネントを使用できる必要があります。パッケージ B は、公開する汎用コンポーネントを含むパッケージです。
アプリケーションを別の方法で構造化する方法や、より良い方法でコンポーネントをインポートする方法について何かアドバイスはありますか?