2016-08-15 6 views
3

私は、Angular2 RC5を使用してオフラインコンパイラを使用して、事前に自分のアプリケーションをコンパイルしようとしています。Angular2 RC5先験的コンパイラは、工場出荷時の.jsファイルを生成していませんか?

自分のコードを 'dist'ディレクトリにコンパイルできます。

import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { AppComponent } from './app.component'; 
import { enableProdMode } from '@angular/core'; 

enableProdMode(); 
bootstrap(AppComponent); 

次にこれにDIST/main.jsを変更:

var platform_browser_1 = require('@angular/platform-browser'); 
var app_module_ngfactory_1 = require('./app/app.module.ngfactory'); 
platform_browser_1.platformBrowser().bootstrapModuleFactory(app_module_ngfactory_1.AppModuleNgFactory); 

そうでなければ、私はそのapp.module.ngfactoryを言ってエラーになった私はこのようなmain.tsがでコンパイルしていますこれを行うにはそれがまだ生成されていなかったので見つからなかった。

コンパイルでは、コンポーネントとアプリケーションモジュールのすべてのngfactoryファイルを含む 'dist'の 'app'サブディレクトリも生成されます。ただし、.tsファイルのみが生成されます。したがって、ブラウザでアプリを実行しようとすると、次のようなエラーが表示されます。

Error: (SystemJS) XHR error (404 Not Found) loading https://mysiteaddress.com/dist/app/app.module.ngfactory.js

これは私が混乱しているところです。どのようにapp.module.ngfactory.jsを生成するのですか?

また、this投稿に基づいてさまざまな方法でmain.tsを修正しようとしましたが、私のapp.module.ngfactoryファイルがアプリケーションの一部ではないため、再コンパイルできませんでしたルートディレクトリ。 TSCはまた

app/chat-operations.component.ngfactory.ts(377,27): error TS2341: Property 'volume_title' is private and only accessible within class 'ChatOperationsComponent'.

の線に沿って、エラーを生成して、私はこれで間違って行くよどこの誰かは説明してもらえますか?どんな助けも大歓迎です。

答えて

1

コンポーネントのコンストラクタの前に変数を宣言するときに、すべての「プライベート」の使用を削除することで、ロード時間を6秒以上短縮することができました。これは前述のように多くのエラーを引き起こしていました。変数privateを宣言することは、サービスとディレクティブで受け入れられるようです。それが唯一の大きな障害でした。まだ分​​かりません...

+0

コンポーネントテンプレートからプライベート変数を参照していますか? –

+0

はい、しばしば、* ngIf式のプライベート変数を、子コンポーネントへの入力として使用していました。これはジャストインタイムをコンパイルするときにうまくいきました。先験的なコンパイラがなぜ違うのか分かりません。 –

+1

オフラインコンパイラはJITとは異なり、TypeScriptコンパイラを使用しているため、メンバの可視性などのより厳しいチェックを強制します。 –

関連する問題