このセットアップでは、生成された ngfactory ファイルからインポートされる angular2 ライブラリをどのようにトランスパイルしますか?
現在のアプリは、angular docs に基づく webpack + aot cookbook の組み合わせです
angular.io/docs/ts/latest/cookbook/aot-compiler.html
angular.io/docs/ts/latest/guide/webpack.html
このレポから問題を再現できる作業中の POC があります。
https://github.com/jetlogs/Angular2-AOT-Localization
コンパイル/バンドルが完了したら、次の 2 つのファイルを開くことができます。
non-aot.html - これは同じアプリの非 aot バージョンであり、適切な
aot.html をロードします - このファイルは次のエラーで失敗します:
ng_module_factory.js?95b1:13 Uncaught SyntaxError: 予期しないトークンのインポート
予想される動作
予想される動作は、aot.html と非 aot.html が同じ動作をすることです。
指示による問題の最小限の再現
リポジトリのクローンを作成し、作業ディレクトリで次のコマンドを実行します。
npm install
npm postinstall
npm run build
次に aot.html を開いて問題を再現します
インポートされた angular2 ライブラリからインポート ステートメントを修正する方法はありますか? ありがとう
アップデート:
babel-loader を使用して、ES2015 にある angular2 ソース ファイルをトランスパイルしようとしました。
{
test: /\.js$/,
loader: 'babel',
include: [
/node_modules(\\|\/)@angular/
],
exclude: [
/\.umd\.js$/
],
query: {
presets: ['es2015']
}
},
ES6 の非互換性の問題なくコンパイルできるようになりましたが、次の場合にのみ新しいエラーが発生しますaot.html
。
core.umd.js?e2a5:3272Uncaught エラー: NgZone のプロバイダーがありません!
AOTコンパイラによって参照されているトランスパイルされたangular2ソースコードがNgZoneの問題をcdausingしている理由は何ですか?
上記のレポを更新して、最新の変更を反映させました
更新 2: 10/13/16
Angular 2.1 に更新して
も同じ問題