2017-03-15 14 views
0

私のプロジェクトがngcのときに、プロジェクトで使用されているレイジーロードされたモジュールがコンパイル/ これは遅延ロードされたルートです:AOT - レイジーロードされたルートがコンパイルされていない

children: [ 
    … 
    { 
     path: "my-apps", 
     loadChildren: "carbonldp-panel/my-apps/my-apps.module#MyAppsModule", 
    }, 
] 

これが出力され、何のmy-apps.module.ngfactory.tsファイルが生成されていない:

enter image description here

それを生成するためのONLY方法は、imporingでありますそれはルーティングファイルにありますが、遅延ロードではありません。

import { MyAppsModule } from "carbonldp-panel/my-apps/my-apps.module”; 
+0

これで、_node_modules_のすべてがプッシュされました。 – Jai

+0

'carbonldp-panel'はメインプロジェクトのライブラリです。 私はより多くの依存関係(carbonldp-panel、carbonldp、angular2-carbonldp)を持つメインプロジェクトをコンパイルしており、角度プロジェクト(angular2-carbonldpとcarbonldp-panel)のngfactoryファイルを生成します。 メインプロジェクトは 'carbonldp-panel'によって提供されたいくつかのモジュールを使用し、読み込み時にのみコンパイルしますが、遅延読み込み時にはコンパイルしません。 – user4068063

答えて

2

ロールアップは1つのエントリポイントを必要とし、ツリーシェイクのためにimportexportステートメントに依存します。

import/exportステートメントだけでは追跡できないため、遅延読み込みに問題があります。

それは理想的ではないのですが、私は、メインのアプリとすべての怠惰なロードされたモジュールが含まれてビルドする目的のために個別のエントリファイルの作成をお勧め:

entry.ts

import './main.ts'; 
import { MyAppsModule } from "carbonldp-panel/my-apps/my-apps.module"; 

rollup.config.js

export default { 
    entry: 'entry.js', 
    ... 
}; 

私はあなたがnode_modulesフォルダにモジュールを配備したことに気づいたので、今度はそのモジュールをあなたのアプリケーションでAOTビルドで再利用しようとしています。 モジュールに必要なファクトリファイルが生成されない場合は、モジュールをチェックして、遅延ロードされたモジュール用のファイルがビルドの一部として生成されていることを確認します。 NGCは、ファクトリを生成するためにメタデータファイルが必要です。

こちらがお役に立てば幸いです。

関連する問題