web-dev-qa-db-ja.com

Angular 9:NgModule.importsのXの位置の値は参照ではありません

Angularアプリをv8からv9にアップグレードしました。プロジェクトは、Angular 8とmoment.jsを使用してカスタムUIライブラリをインポートします。

私がそれを構築するとき:

  1. 警告が生成されます:
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';


  1. コンパイルエラーも発生します:
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の問題 を見てきましたが、有効なソリューションはありません。

2
Francesco

私の場合、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",
0
Clement

#2は、distフォルダではなくプロジェクトのフォルダでnpm linkを誤って使用した後に発生しました。

0
Jony Adamit