AngularライブラリをAngular 9.にアップグレードしました。ただし、別のAngular 9プロジェクトでそのライブラリを使用しようとすると次のようなエラーが発生します。
ターゲットエントリポイント "mycomponents/entity-selector"に依存関係がありません:
- mycomponents/shared-services
- mycomponents/spinner
- mycomponents/text-input
Package.json
{
"$schema": "../../../node_modules/ng-packagr/package.schema.json",
"name": "entity-selector",
"version": "0.0.0",
"ngPackage": {
"lib": {
"entryFile": "public_api.ts"
},
"dest": "../../../dist/mycomponents/entity-selector"
}
}
これは、セカンダリエンドポイントでもある他のコンポーネントを使用するセカンダリエンドポイントです。
ライブラリプロジェクトでは、ng-packgrまたは他の場所で依存関係を定義する必要がありますか?エンティティセレクタコンポーネントのモジュールは、他のコンポーネントの適切なモジュールをインポートします。この問題はAngular 9以降に発生しました。
少し早いですがお礼を。
ライブラリをインポートするプロジェクトで、tsconfig.json
に以下を追加します。これにより、tsc
がライブラリ内のサブモジュール間の「欠落している依存関係」を解決できるようになります。
"compilerOptions": {
"paths": {
"mycomponents/*": [
"./node_modules/mycomponents/*"
],
これにより、whitelistedNonPeerDependencies
は必要なくなりました。