ng-packagr を使用して 1 つのプロジェクト @my/common-util をパッケージ化する場合、問題はありません。このクラスには、abstract-person.ts に AbstractPerson という抽象クラスが含まれています。
@my/common-impl という別のプロジェクトでは、AbstractPerson を拡張し、@my/common-util パッケージ名を使用してインポートする別の Person クラスが作成されました。ng-packagr を使用してパッケージ化すると、次のエラーが発生します -->
options.globals の外部モジュール '@my/common/abstract-person' に名前が指定されていません - 'abstractPerson' を推測しています
警告のようだったので、引き続き @my/common と @my/common-impl を別のプロジェクトに npm install しますが、 @my/common-impl から Person クラスを import すると以下のエラーが発生します
./node_modules/@my/common-impl/esm5/common-impl.js のエラー モジュールが見つかりません: エラー: 'C:\Data\me\ の '@my/common/abst ract-person' を解決できませんnode_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\esm5' 解析されたリクエストは説明を使用するモジュールですファイル: C:\Data\me\node_modules\@my\common-impl\package.json (相対パス: ./esm5) フィールド 'browser' には、記述ファイルを使用した後、有効なエイリアス構成が含まれていません: C:\ Data\me\node_modules\@my\common-impl\package.json (相対パス: ./esm5) モジュールとして解決
外部、グローバル、package.json の umdModuleIds などをいくつか試しましたが (以下を参照)、どれもうまくいきませんでした。
これがpackage.jsonです
{
"name": "@my/common-impl",
"version": "1.0.0-alpha.0",
"private": true,
"dependencies": {
"@my/common": "1.0.0-alpha.0"
},
"peerDependencies": {
"lodash": "^4.17.4"
},
"ngPackage": {
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"dest": "dist/common-impl",
"workingDirectory": "../.ng_build",
"lib": {
"entryFile": "src/public_api.ts",
"externals": [
"@my/common/abstract-person"
],
"globals": {
"@my/common/abstract-person": "AbstractPerson"
},
"umdModuleIds": {
"abstract-person" : "AbstractPerson"
}
}
}
}
これを是正するには、さらに何が必要ですか?