问题标签 [angular2-aot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - Angular 2 Ahead-of-Time 编译器:我必须公开所有类属性吗?
Angular 2 rc 6
, typescript 2
, node 4.5.0
,npm 2.15.9
上Windows 7
我正在尝试从即时编译转移到提前编译,并且我依赖这些资源:
- Angular 2 - 提前编译如何
- https://github.com/angular/angular/tree/master/modules/@angular/compiler-cli#angular-template-compiler
我知道我需要运行编译器ngc
来生成ngfactory.ts
文件,并且我需要更改main.ts
为使用platformBrowser
而不是platformBrowserDynamic
引导。我遇到了障碍,不知道如何进行。
1.我已经确认应用程序使用即时编译运行没有错误。我main.ts
的是:
2.我从生产文件夹中清除了所有应用程序文件,但保留了第 3 方库(例如:Angular 2、Angular 2 Material)
3.我运行"node_modules/.bin/ngc" -p ./
这个运行没有输出到控制台。我看到我.ngfactory.ts
的每个.ts
组件和模块都有一个文件。我还看到.css.shim.ts
每个包含.css
组件样式的文件。另外,.js
和.js.map
文件已被转译并放置在生产目录中
4.如果此时我尝试运行该应用程序,我会看到包含组件模板404 not found
的所有文件的错误.html
5.我手动将所有模板文件 ( .html
) 移动到生产目录并运行应用程序。它运行良好,但它仍然使用即时编译(255 个请求,包括compiler.umd.js
)
6.我将我的更改main.ts
为:
就其本身而言,这没有任何区别,因为尚未编译新代码。但是,我不知道从这里做什么。
我应该再跑ngc
一次吗?如果是这样,我会收到很多类型的错误:
使用 AoT 编译是否意味着我必须公开我的所有类属性?我错过了一步吗?
angular - Angular2 中的 AoT(或提前编译)是什么?
提前编译(或 AoT)是 Angular2 中提供的一项功能。但是我在官方网站上找不到很好的解释。
有人可以给它一个明确的定义吗?
angularjs - Angular 2:如何使用 Ahead of Time Compilation 实现延迟路由?
我已经使用 ngc 编译器成功创建了 .ngfactory 文件,并且还使用“platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)”更新了我的 main.ts。
应用程序.routes.ts
现在,当我使用“ng build -prod && ng serve -prod”为我的应用程序提供服务时,它成功托管。但是,当我在浏览器上打开它时,我的控制台向我显示此错误“异常:未捕获(承诺中):错误:找不到模块 'app/starter/starter.module.ngfactory'。”
当我检查我的目录时,文件“确实”存在但找不到它。有没有人面临这个问题?如果是,那么如何解决呢?谢谢。
我正在使用 Angular-cli beta 14。
angular - Angular2 AoT - 在组件中设置 module.id 时未定义 module.id
我正面临 Angular2 AoT 的挑战,任何帮助对我来说都是一个大问题,因为我被困住了。
我有一个简单的 hello world 应用程序,它有 main.js、home.module.ts、home.component.ts、home.component.html 和 home.service.ts。此代码在没有 AoT 的情况下使用 Angular2 运行良好。
在我按照说明书中的 angular.io 步骤精确执行 AoT 和汇总后,我收到错误:“未捕获的 ReferenceError:模块未定义”,我不知道为什么会发生这种情况。
我的 Home.Component.ts 标记如下:
有人在外面,请帮助!
angular - Angular 2“遇到静态解析符号值的错误。” 运行 i18n
我正在尝试运行 i18n 提取工具来翻译我的 angular 2 应用程序。但是当我尝试运行时,我得到:
错误在我的自定义错误处理程序中:
错误处理程序基于这篇文章: https ://www.bennadel.com/blog/3138-creating-a-custom-errorhandler-in-angular-2-rc-6.htm
因此,如果您想查看完整的代码,可以在那里查看。
有谁知道为什么会抛出这个错误?
angular - Angular AOT/ngc 重复路由定义
我在为延迟加载的 Angular 应用程序设置提前编译时遇到了一些问题。
延迟加载的路由定义在一个app.routes.ts
文件中,该文件由app.module.ts
. 当我运行ngc
的内容app.routes.ts
被内联到app.module.ngfactory.ts
中时,但该文件还包括原始的导入app.module.ts
,然后app.routes.ts
再次导入,依此类推...
然后,当我将 AOT 应用程序与 Webpack 捆绑在一起时,我得到了我的路由定义的副本(使用angular2-router-loader
),其相对路径无法在两个实例之一上解析(因为一个是内联的并且位于我的目录树的不同级别)。
我该如何解决这个问题?ngc
生成原始app.module.ts
文件的导入对我来说似乎很奇怪,app.module.ngfactory.ts
但我不知道如何防止它。
angular - Angular2:this.http.get(...).map 不是函数,但仅在 AoT 编译时
我正在使用一项服务来发出 http 获取请求:
这一切都适用于我在开发时使用的 SystemJS。但是,当我将 AoT 编译与 rollup 和 uglify 一起使用时,我不断收到错误消息:
bundle.min.js:7 例外:未捕获(承诺):TypeError:this.http.get(...).map 不是函数
我能找到的只是人们说要添加import 'rxjs/add/operator/map'
到 main.ts 文件或 app.module.ts 文件中。我已将此添加到每个相关文件以及添加import 'rxjs/Rx'
到所有相关文件中,但似乎没有任何效果..
有没有人成功地将 http 请求与 AoT 编译结合使用?
这是我用于 AoT 的 de tsconfig 文件:
这些是我正在使用的构建命令:
欢迎任何帮助!
angular - ngc 在错误的目录中查找
我已@angular/compiler-cli
全局安装并将以下tsconfig-aot.json添加到我的客户端目录:
按照角度文档中的建议。然后ngc -p tsconfig-aot.json
我在我的客户端目录中运行,但收到以下错误:
错误:编译失败。找不到资源文件:C:/Users/George/Source/Repos/docs/client/components/home/client/components/home/home.html
因为该资源不存在.. 我的 home.html 位于C:/Users/George/Source/Repos/docs/client/components/home/home.html
, tsc 工作正常,我一直在使用 JIT 编译并且有一个工作应用程序,那么 AOT 在错误的位置查找我的文件是什么?