web-dev-qa-db-ja.com

ライブラリのビルドがAngular 9で失敗する

このライブラリを移行しようとしています https://github.com/flauc/angular2-notifications from Angular 2+ to Angular = 9。

元のエラーは、ジェネリック型になったModuleWithProvidersに関するものだったので、修正しました。ここにもエラーがありました https://github.com/angular/angular/issues/32352require('@angular/compiler-cli');で修正しましたが、別のエラーが発生しています:

../node_modules/@angular/common/common.d.ts:115:22-エラーNG6002:SimpleNotificationsModuleのNgModule.importsに表示されますが、NgModuleクラスに解決できませんでした

これまでにライブラリをビルドしたことがないので、何が起こっているのかを理解するのは非常に難しく、gulpを使用したビルドは、この行ngc = require('@angular/compiler-cli/src/main').mainが、パブリックAPI。

編集:

コメントのアイデア(そして私自身の気持ち)に従って、私はガラガラせずにビルドしようとしました:

  • angular.jsonファイルを作成しました
  • index.tspublic_api.tssimple-notifications.module.tsに分離
  • ファイルとフォルダの構造にいくつかの変更がありましたか

しかし、私はまだまったく同じエラーを抱えています...

私の試み: https://github.com/youkouleley/angular2-notificationsng buildでこれを構築しようとしましたが、package.jsonのスクリプトは更新されていません

4
Guerric P

私は何がうまくいかないのかを理解しました、Angular 8プロジェクト(ライブラリプロジェクトを含む))がありましたAngular 9にアップグレードしました(libも使用: ng生成ライブラリコア、私は最初に新しいangular 9プロジェクトを作成して、ng 8で作成したプロジェクトとの違いを比較します。欠けているものがあることがわかります。ここに手順を示します。続いて:-node_modulesを削除します-distフォルダーを削除します-Angular 9プロジェクトlibには、tsconfig.lib.prod.jsonという新しいファイルがあります

{
  "extends": "./tsconfig.lib.json",
  "angularCompilerOptions": {
    "enableIvy": false
  }
}
  • Angular.jsonに以下を追加します。
{
  ...
  "projects": {
     ...
     "configurations": {
            "production": {
              "tsConfig": "projects/core/tsconfig.lib.prod.json"
             }
      }
  ...
  }
}
  • ng build --prodを実行すると、すべてが機能します:D

PS:この場合、ライブラリは「コア」と呼ばれます

0
Youness Houdass