私は、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'.
の線に沿って、エラーを生成して、私はこれで間違って行くよどこの誰かは説明してもらえますか?どんな助けも大歓迎です。
コンポーネントテンプレートからプライベート変数を参照していますか? –
はい、しばしば、* ngIf式のプライベート変数を、子コンポーネントへの入力として使用していました。これはジャストインタイムをコンパイルするときにうまくいきました。先験的なコンパイラがなぜ違うのか分かりません。 –
オフラインコンパイラはJITとは異なり、TypeScriptコンパイラを使用しているため、メンバの可視性などのより厳しいチェックを強制します。 –