Angularアプリをv8からv9にアップグレードしました。プロジェクトは、Angular 8とmoment.jsを使用してカスタムUIライブラリをインポートします。
私がそれを構築するとき:
WARNING in Entry point '@myLib/catalogue' contains deep imports into
'/Users/xyz/Projects/forms-frontend/node_modules/moment/locale/de'.
This is probably not a problem, but may cause the compilation of entry points to be out of order.
の中に @myLib/catalogue.js
ライブラリのファイル(node_modulesフォルダー内)、moment.js DEロケールは次のようにインポートされます。
import 'moment/locale/de';
ERROR in Failed to compile entry-point @myLib/catalogue (es2015 as esm2015) due to compilation errors:
node_modules/@myLib/catalogue/fesm2015/catalogue.js:213:26 - error NG1010: Value at position 2 in the NgModule.imports of FormInputModule is not a reference: [object Object]
213 imports: [
~
214 CommonModule,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
219 TranslateModule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 ],
~~~~~~~~~~~~~~~~~
警告のテキストは、位置(この場合は2)がインポート配列の範囲外であるコンパイルエラーを正確に説明しているようです。
ディープリンクに関するさまざまな記事/ githubの問題 を見てきましたが、有効なソリューションはありません。
私の場合、angularインポートされたライブラリの一部に非互換性があったと思います。以前は手動で@angular/material
から9.2.3
他のangularライブラリをぶつけることなく。
私が使用して新しいリポジトリを作成したとき:ng new test-ng9
を追加してangular material ng add @angular/material
、コンパイルの問題はありませんでした。
したがって、angular cliがtempリポジトリに含まれている依存関係を取得し、既存のリポジトリにある依存関係を置き換えました。
変更前:
"@angular/animations": "~9.1.6",
"@angular/cdk": "9.1.1",
"@angular/common": "~9.1.1",
"@angular/compiler": "~9.1.1",
"@angular/core": "~9.1.1",
"@angular/forms": "~9.1.1",
"@angular/material": "9.2.3",
"@angular/platform-browser": "~9.1.1",
"@angular/platform-browser-dynamic": "~9.1.1",
"@angular/router": "~9.1.1",
後:
"@angular/animations": "~9.1.6",
"@angular/cdk": "9.1.1",
"@angular/common": "~9.1.6",
"@angular/compiler": "~9.1.6",
"@angular/core": "~9.1.6",
"@angular/forms": "~9.1.6",
"@angular/material": "^9.2.4",
"@angular/platform-browser": "~9.1.6",
"@angular/platform-browser-dynamic": "~9.1.6",
"@angular/router": "~9.1.6",
#2は、distフォルダではなくプロジェクトのフォルダでnpm link
を誤って使用した後に発生しました。