2017-06-20 21 views
0

Angular CLIを使用してアプリケーションを作成しましたが、JITコンパイルで正常に動作します。私は私のアプリケーションをはるかに高速化する必要があると感じて、アプリケーションをJITからAOTに変換することを計画しました。 Angular CLI - ngビルド時のAOTエラー

は私がangular.io

https://angular.io/guide/aot-compiler

この文書で言及されている指示に従いました。

すべてのファイルをngFactoryに変換するのに役立つ手順を正常に変換しましたが、エラーなしでロールアップ処理が完了しました。

私はここに

Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options. Error: Tried to find bootstrap code, but could not. Specify either statically analyzable bootstrap code or pass in an entryModule to the plugins options. at Object.resolveEntryModuleFromMain (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@ngtools/webpack/src/entry_resolver.js:128:11) at AotPlugin._setupOptions (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@ngtools/webpack/src/plugin.js:143:50) at new AotPlugin (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@ngtools/webpack/src/plugin.js:26:14) at _createAotPlugin (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12) at Object.exports.getAotConfig (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/models/webpack-configs/typescript.js:88:19) at NgCliWebpackConfig.buildConfig (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/models/webpack-config.js:26:37) at Class.run (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/tasks/build.js:27:92) at Class.run (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/commands/build.js:149:26) at Class.Command.validateAndRun (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/ember-cli/lib/models/command.js:128:15) at /Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/ember-cli/lib/cli/cli.js:92:22 at tryCatch (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:539:12) at invokeCallback (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:554:13) at /Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:629:16 at flush (/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:2414:5) at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9)

を以下は私のmain.ts

import { platformBrowser } from '@angular/platform-browser'; 
import {AppModuleNgFactory} from '../aot/src/app/app.module.ngfactory'; 

console.log('Running AOT compiled'); 
//platformServer().bootstrapModuleFactory(AppModuleNgFactory); 
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); 

私のTSconfig-aot.json

あるよう ng build --aot

エラーメッセージが実行したとき、私はエラーを取得しています

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "es2015", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es2015", "dom"], 
    "noImplicitAny": false, 
    "suppressImplicitAnyIndexErrors": true, 
    "typeRoots": [ 
     "./node_modules/@types/" 
    ] 
    }, 

    "files": [ 
    "src/app/app.module.ts", 
    "src/main.ts", 
    ], 

    "angularCompilerOptions": { 
    "genDir": "aot", 
    "skipMetadataEmit" : true 
    } 
} 

誰にも同じ問題がありますか?

+1

angle-cliを使用している場合は、独自のマニュアルに従ってください。あなたのフォルダ構造が正しくありません。 main.tsは、同じフォルダにあるモジュールをインポートする必要があります。 – echonax

+0

これらの手順は、Angular CLIを使用しないプロジェクトに対してAOTを手動で実装するためのものです。 –

答えて

1

コメントに記載されているように、cliを使用している場合は、ng build --prodを実行すると、あなたのために揺れ動く建物があります。あなたはそれをより多くのマニュアルルートをやりたいと思っている場合は、上記のやっているとして、あなたは彼らがこのように見えるように、あなたのangularCompileOptionsに別の行を追加する必要があります

"angularCompilerOptions": { 
    "genDir": "aot", 
    "entryModule": "app/app.module#AppModule", 
    "skipMetadataEmit" : true 
    } 

あなたが実際のモジュールを示していないとして、パスとモジュール名を更新しなければならないかもしれませんが、そのプロパティはおそらく欠けているものです。

+0

ng build --prodコマンドは問題なしで正常に動作します。 手動設定を使用すると、 "angularCompilerOptions":{ "genDir": "aot"、 "entryModule": "app/app.module# AppModule "、 " skipMetadataEmit ":true } これは動作しません – skid

+0

本当にあなたのプロジェクトによって異なります。投稿したパスがオフであるか、名前が付けられている可能性があります。投稿したファイルの残りの部分を見ると、src/app/app.module#AppModule "'にする必要があるかもしれません。 – peinearydevelopment

関連する問題