问题标签 [angular-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.

0 投票
0 回答
344 浏览

angular - Angular 2/4 编译使用 AoT 错误 - extendStatics

我有一个正在尝试使用 AoT 编译的应用程序。当我构建应用程序时,我收到以下错误:

C:\test\node_modules\@angular\compiler-cli\src\diagnostics\expression_diagnostics.js:14

扩展静态(d,b);

^ TypeError:对象原型可能只是一个对象或空:未定义

我知道有些东西适用于 JIT 编译但不适用于 AoT,所以我怀疑我的代码中可能有一些东西可能不适用于 AoT。请问知道这个错误的原因是什么吗?

Angular 和 TypeScript 版本

  • 角度版本:4.0.1
  • 角度编译器 CLI:4.2.5
  • 打字稿:2.3.4
0 投票
0 回答
251 浏览

angular - 带有 ngTools/webpack 的 Angular AOT 使用惰性模块创建额外的不需要的块

我有 webpack 生成以下捆绑文件:

  • main.prod.js(好)
  • vendor.prod.js(好)
  • 0.chunk.prod.js (不好- 这是一个延迟加载模块的包)
  • 1.chunk.prod.js (- 这是一个延迟加载模块的包)

问题是我希望延迟加载的模块(例如:0.chunk.prod.js)成为 main.prod.js 包的一部分。

webpack.common.js

webpack.prod.js

0 投票
1 回答
240 浏览

angular - AOT 角度模块

我一直在尝试导出一个简单的 Angular4 模块以在另一个项目中工作至少一个月。阅读了很多文章,但它不起作用。这是一个包含两个文件夹的文件

lib是 Angular 模块的一个非常简单的实现,并将demo该模块导入到其根模块中。

无论我做什么,演示应用程序都会给我不同类型的错误,说它lib不是 Angular 模块。有时谈论不包括装饰器,有时会出现这个错误:

错误中的错误遇到静态解析符号值。不支持函数调用。考虑将函数或 lambda 替换为对导出函数的引用(原始 .ts 文件中的位置 194:50),解析符号 NgModule

我试图瞄准es5es2015但没有任何运气。

重现问题的步骤:

  1. 下载 zip 并将其解压缩到一个文件夹中

  2. 光盘lib文件夹

  3. 运行npm installyarn install安装依赖项

  4. 运行npm run bundleyarn bundle将库捆绑到 dist

  5. 光盘demo文件夹

  6. 运行npm installyarn install

  7. 运行npm install ../lib或安装文件夹内yarn add file:../lib的本地ng-test-liblib

  8. 运行npm startyarn start启动演示项目

更新:

我在这里添加了一些文件的内容:

lib/src/a-module.ts

lib/src/a-directive.ts

lib/tsconfig.aot.json

有人知道这里发生了什么吗?

0 投票
1 回答
2232 浏览

angular - 如何在 Angular 应用程序中使用 Angular-CLI 进行 AOT?

构建一个 Angular4 项目并试图弄清楚我们需要如何以及是否需要使用 Angular-CLI 进行 AOT,因为它在后台运行 Webpack2,而 webpack 可以使用 ng build 为我们提供生产构建。那么我们是否需要使用 CLI 进行 AOT?

此外,当我们在本地机器上运行基于 CLI 的项目时,在 localhost AOT 上呈现的构建是编译还是 JIT?

0 投票
3 回答
4677 浏览

angular - Angular 2 i18n 消息,里面带有 HTML 标记

我试图使用 angular 2 的 i18n 官方实现来翻译我的应用程序:https ://angular.io/guide/i18n并且我试图用 HTML 来翻译一些消息(可以说字体真棒图标)。

例如这个:

当我使用ng xi18n或生成翻译文件时,./node_modules/.bin/ng-xi18n我得到以下翻译单元。

我为 es 语言环境创建了一个翻译文件,当我使用新的语言环境为我的应用程序提供服务时,字体真棒图标丢失,仅显示文本 instagram。

此问题发生在正在翻译父级的任何嵌套 HTML 标记中。

0 投票
0 回答
108 浏览

angular - Angular AOT 更改组件文件名添加 .ngfactory 在包含时创建 url 引用错误

所以 AOT 更改了我的组件的名称,例如my-component.component.tsmy-component.component.ngfactory.ts但是在生成的文件中包含这样做的文件

import * as import2 from './my-component.component';

这是错误的,因为该文件不再存在。

如果我将文件上的导入更改为

import * as import2 from './contact-us.component.ngfactory';

然后我可以看到例如我的 IDE 如何停止抱怨,因为该文件确实存在。

现在有人如何使 AOT 编译器不修改文件名或相应地修改导入?让我知道您是否需要查看任何配置文件

这就是我的 tsconfig 的样子

收到的错误是

0 投票
1 回答
641 浏览

angular - AOT - ngc 无法解析组件的所有参数

当我按照 JIT 指令构建时ng build;当我使用标志ng build --prod为 AOT 构建时,一切都很好,该应用程序有效。但是当我尝试使用它编译它(AOT)时,出现以下错误:--aotng build --aotngc

这是 HomeComponent 类:

[编辑] 事件管理器:

[编辑] app.module.ts :

您知道错误的原因吗?

0 投票
0 回答
99 浏览

angular - “不支持函数调用。” 使用 ngc AOT 编译 (angular-quickstart-lib)

我正在使用angular-quickstart-lib制作我的自定义模块。当我运行集成脚本时,它会抛出错误:

错误:静态解析符号值时遇到错误。不支持函数调用。考虑将函数或 lambda 替换为对导出函数的引用(原始 .ts 文件中的位置 15:23),解析 D:/Projects/Playground/ng-yandex-metrika/integration/node_modules/ng 中的符号 MetrikaModule.forRoot -yandex-metrika/ng-yandex-metrika.d.ts,解析D中的符号AppModule:/Projects/Playground/ng-yandex-metrika/integration/src/app/app.module.ts,解析D中的符号AppModule :/项目/游乐场/ng-yandex-metrika/integration/src/app/app.module.ts

我的回购在这里。您可以在此处查看模块并此处查看集成测试。要运行集成测试,有 command 。谁能说出为什么会发生这个错误?npm run integration:aot

关于stackoverflow有很多问题,但他们没有帮助。我也见过这个

0 投票
1 回答
106 浏览

angular - 带有语义少的Angular4 AOT不起作用

在使用语义较少的 angular4(以及来自 vladotesanovic 的 angular2 的语义)时,我遇到了一个奇怪的问题。当我启动我的项目(npm start)时,一切正常。

但是当我使用 AOT 编译启动时(npm run build:aot -> num run server:prod):

这是sm 选择

下图中的不工作示例:

在此处输入图像描述 这是示例回购:

https://github.com/fpmk/ngx-semantic-less-webpack

0 投票
1 回答
134 浏览

angular - 如何处理 AOT 编译失败的 npm 包

我是 Web 开发的完全新手,现在我面临一个我不知道如何处理的问题。

我在我的 Web 应用程序中使用名为@uniprank/ngx-file-uploader( https://www.npmjs.com/package/@uniprank/ngx-file-uploader ) 的 npm 包。使用 JIT 编译进行编译时,它可以正常工作。但是,现在想把我的应用程序转为生产模式,所以我尝试了AOT编译,结果发现了一个问题。当我尝试使用 Angular 编译器编译我的应用程序时,这个包会中断,如下所示:https ://angular.io/guide/aot-compiler 。显示的消息如下:

在包的 Github 存储库的问题之一(https://github.com/uniprank/ngx-file-uploader/issues/3)中,我注意到这可能是包本身的问题。

在这一点上,我完全迷失了。我知道这是一个非常笼统的问题,但我不知道如何处理这个问题。我应该处理包装本身吗?如果是这样,我是否必须创建一个新的 npm 包以将其添加到package.json我的应用程序中并在执行命令时将其包含在我的应用程序中npm install

任何帮助,将不胜感激。谢谢。