我使用Angular CLI创建了一个应用程序,它可以与JIT编译一起使用 . 我觉得我需要更快地使我的应用程序,所以我计划将应用程序从JIT转换为AOT .
我按照angular.io提到的说明进行操作
https://angular.io/guide/aot-compiler
这个文件 .
我成功转换了步骤,这有助于我们将所有文件转换为ngFactory,完成了汇总过程而没有错误 .
我执行 ng build --aot
时收到错误
错误消息如下
试图找到引导代码,但不能 . 指定静态可分析引导代码或将entryModule传递给plugins选项 . 错误:试图找到引导程序代码,但不能 . 指定静态可分析引导代码或将entryModule传递给plugins选项 . 在AotPlugin._setupOptions上的Object.resolveEntryModuleFromMain(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@ngtools/webpack/src/entry_resolver.js:128:11)(/ Users / wakdev / WebstormProjects / wak_ang2_angcli / node_modules / @ ngtools / webpack / src / plugin.js:143:50)在新的AotPlugin(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@ngtools/webpack/src/plugin.js:26:14)_createAotPlugin(/ Users / wakdev / WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12)在Object.exports.getAotConfig(/ Users / wakdev / WebstormProjects / wak_ang2_angcli / node_modules / @ angular / cli / models / webpack-configs / typescript.js:88:19)在Class.run的NgCliWebpackConfig.buildConfig(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/models/webpack-config.js:26:37) /Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/tasks/build.js:27:92)在Class.run上(/ Users / wakdev / WebstormProjects / wak_ang2_angcli / node_modules / @ a ngular / cli / commands / build.js:149:26)在Class.Command.validateAndRun(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/ember-cli/lib/models/command.js:128 :15)在/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/@angular/cli/ember-cli/lib/cli/cli.js:92:22在tryCatch(/ Users / wakdev / WebstormProjects / wak_ang2_angcli / node_modules / rsvp) /dist/rsvp.js:539:12)在/ Users / wakdev / WebstormProjects / wak_ang2_angcli / node_modules / rsvp的invokeCallback(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:554:13) /dist/rsvp.js:629:16在flush(/Users/wakdev/WebstormProjects/wak_ang2_angcli/node_modules/rsvp/dist/rsvp.js:2414:5)_combinedTickCallback(internal / process / next_tick.js:67:7) )at process._tickCallback(internal / process / next_tick.js:98:9)
这是我的主要内容
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
{
"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 回答
正如评论中所提到的,如果你正在使用cli,那么运行
ng build --prod
应该为你做建筑,aot和树摇动 . 如果你想要做更多的手动路线,就像你上面所做的那样,你需要在angularCompileOptions
上添加另一行,这样它们看起来像这样:由于您未显示实际模块,因此可能必须更新路径和模块名称,但该属性很可能是您缺少的 .