Anglar 9 +でNPMリンクを使用する


角度ライブラリを構築するとき、' NPMリンク'ライブラリとアプリケーション間のフィードバックループを短縮することができます.ただし、単にライブラリをビルドしてリンクすると、プロジェクトが起動したときにエラーがスローされます.これは、アプリケーションがIvyモードでコンパイルされているため、依存関係のリンクライブラリは、Ivyモードでもコンパイルする必要があります.
以下に解決策を示します.
  • tsconfig.lib.ivy.jsonに新しいproject/PROJECT_NAMEを作成します.これにより、ライブラリビルドがIvyを使用しない間、Ivyビューエンジンがプロジェクトをコンパイルするのに使用されます.
  • {
      "extends": "./tsconfig.lib.json",
      "angularCompilerOptions": {
        "enableIvy": true
      }
    }
    
    ライブラリのangular.json
  • は、ivyの下で新しい構成project->PROJECT_NAME->architect->buildを加えます.
  • ...
    "configurations": {
      "production": {
        "tsConfig": "projects/PROJECT_NAME/tsconfig.lib.prod.json"
      },
      "ivy": {
        "tsConfig": "projects/PROJECT_NAME/tsconfig.lib.ivy.json"
      }
    }
    
  • あなたのパッケージを更新します.以下のコマンドに簡単にアクセスできるJSON :
  •  "scripts": {
        ...
        "build:ivy": "ng build PROJECT_NAME --configuration=ivy"
      }
    
  • NPMのビルドビルドを実行します.これは、Ivy互換ライブラリを構築します.
  • は、cd dist/PROJECT_NAME
  • を走らせます
  • は、npm link
  • を走らせます
    プロジェクトで
  • は、ライブラリにリンクするnpm link LIBRARY_NAMEを実行します.
  • 今、図書館はプロジェクトにリンクされています.
    ボーナスチップ:ライブラリがすべてのコード変更で再構築されるように、NPMランbuild:ivy -- --watchを実行してください.