Angular Angularライブラリを通じて共通のコードを共有するプロジェクトが2つあります。両方のプロジェクトでng update
を実行し、AngularライブラリをAngular 8から9にアップグレードしようとしました。移行スクリプトにより、tsconfig.app.json
ファイルが
"include": [
"../src/**/*"
]
に
"files": [
"main.ts",
"polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
Tsconfig.app.jsonを更新して、コンパイルされるファイルを制限しました。コンパイルに含まれている他のファイル(typings.d.tsファイルなど)に依存している場合は、手動でコンパイルに追加する必要があります。
アプリを実行しようとすると(ライブラリを使用するプロジェクトの1つからのng serve
)、エラーが発生しました
ERROR in Failed to compile entry-point my-common-library (module as esm5) due to compilation errors:
node_modules/my-common-library/fesm5/my-common-library.js:5207:30 - error NG1010: Value at position 4 in the NgModule.imports of MyCommonLibraryModule is not a reference: [object Object]
5207 imports: [
~
5208 CommonModule,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
5225 MatAutocompleteModule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5226 ],
~~~~~~~~~~~~~~~~~~~~~
ライブラリのtsconfig.app.json
を
"include": [
"../src/**/*"
]
その後、すべてがうまくいきます。だから私の質問は
ng update
はライブラリを使用するためのものではありませんか?ドキュメントに従って https://update.angular.io/#8.0:9. 特定のコンポーネントから深くインポートする必要があります
import {MatAutocompleteModule} from '@angular/material/autocomplete';
@NgModule({
imports: [
MatAutocompleteModule
]