问题标签 [ngtools]

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 投票
3 回答
3639 浏览

angular - 必须有要重构的源文件中的错误

webpack编译的奇怪错误:

必须有要重构的源文件中的错误。

查看源代码,我在以下位置找到了此消息./node_modules/@ngtools/refactor.js

@ngtools webpack 插件的配置非常简单:

0 投票
4 回答
22068 浏览

angular - AOT - Angular 6 - 指令 SomeComponent,预期 0 个参数,但得到 1。对于自制组件

当我想使用以下包版本在 AOT 中编译我当前的项目时,我遇到了问题:

  • @ngtools/webpack@6.0.3
  • @angular@latest (6.0.2)
  • Webpack@4.0.0

我的 webpack 和 tsconfig.json 配置可以在这里找到

我遇到了一些与模板上使用的private/protected范围相关的问题,以及一些提取参数提供给一些真正不需要它的函数(例如未在 EventBinding 上使用的 $event)。

现在我有以下列表,我找不到我的问题在哪里:

/path/to/app/header/main-header/main-header.component.html(85,7): : 指令 TableOfContentComponent,预期 0 个参数,但得到 1。 (1,1): : 指令 TableOfContentComponent,预期 0争论,但得到 1。

我的main-header.component.html文件包含:// main-header.component.html

而且 myTableOfContentComponent不包含任何@Input属性。

/path/to/app/header/main-header/hamburger-menu/hamburger-menu.component.html(125,5): : 指令 SliderComponent,预期 0 个参数,但得到 1 个。 (1,1): : 指令SliderComponent,预期 0 个参数,但得到 1 个。

hamburger-menu.component.html的代码接近上述代码:

我的SliderComponent样子:

/path/to/app/header/main-header/medias/dialogs/image-dialog.component.html(34,5): : 指令 CarouselComponent,预期 0 个参数,但得到 1. (1,1): : 指令CarouselComponent,预期 0 个参数,但得到 1 个。

真的很接近前一个,我认为问题是一样的。

/path/to/app/document/page/page.component.html(7,9): : 指令 InfinityPageScrollComponent,预期 0 个参数,但得到 1。 (1,1): : 指令 InfinityPageScrollComponent,预期 0 个参数,但得到1.

在这里我们没有任何输入InfinityPageScrollComponent,标签是这样调用的<ps-infinity-page-scroll></ps-infinity-page-scroll>

我准确地说,当我在我的 webpack 上禁用 AOT 时,一切都像魅力一样工作。

我试图在AoT Do's 和 Don'ts上找到解决方案,但没有任何结果。

我还注意到,如果我禁用fullTemplateTypeCheck我将面临大约 18 000 个错误,其中包含一些隐含的任何类型以及更奇怪、未定义的属性,用于在构造函数上声明的服务。

--- 编辑 1:为抽象类提供代码:UnsubscribeHelper---

抽象类的代码UnsubscribeHelper

0 投票
2 回答
588 浏览

angular - webpack AngularCompilerPlugin hostReplacementPaths 选项不起作用

在我更新到 Angular6 并@ngtools/webpack从“6.0.0-beta.8”更新到“6.1.2”后,我发现hostReplacementPaths选项不再起作用。

通常它会替换正确的 env 文件:

但现在没有了。

我对@ngtools/webpack 进行了深入调试,发现normalize这里的功能 https://github.com/angular/angular-cli/blob/master/packages/ngtools/webpack/src/virtual_file_system_decorator.ts#L188 不起作用

这个 https://github.com/angular/angular-cli/blob/master/packages/angular_devkit/core/src/virtual-fs/path.ts#L199

仍然找不到它出了什么问题。也许有人已经解决了这个问题?

在 angular-cli repo 中创建了一个问题 - https://github.com/angular/angular-cli/issues/11801

0 投票
0 回答
516 浏览

angular - Angular 6 - 库上的 AOT 编译,用作主应用程序中的延迟加载插件

我正在开发一个在 Angular 6 中完成的基于插件的应用程序。我有 2 个项目,一个主项目和一个我开发插件的 lib 项目。插件使用 ng build --prod 构建到 UMD 中,然后使用 SystemJs 加载到主应用程序中,在主应用程序中使用 Compiler 类在运行时进行编译(构建的插件部署在另一台服务器上)。主应用程序在构建时不包含对 lib 项目的引用。

只要我在开发模式下运行主应用程序,它就可以正常工作。当我在 prod 中尝试它时,由于 JIT 编译器在 prod 构建中被删除,它崩溃并显示“错误:未加载运行时编译器”。

我的问题是:是否可以提前构建一个 Angular 6 Cli Lib 项目(或者不一定是一个 cli lib 项目),使用 SystemJs 加载它,然后只使用组件工厂来创建动态组件?我怎么能做那个构建?

我无法将 lib 与主应用程序一起构建,因为最终目标是让其他开发人员为应用程序创建插件,并且并非所有组件都将在运行时使用。

如果没有 AOT,我无法保留主应用程序,因为它会变得非常大,并且性能会受到很大影响。

我也知道 Angular Elements,但我也希望能够创建 AOT lib 插件。

0 投票
1 回答
881 浏览

npm - @ngtools/webpack:检测到 Angular 编译器,但它是错误类的实例。

我已经花了大约 10 个小时来解决这个错误:

我添加图像是因为更容易识别。在我尝试解决它时,我更新了节点,我重新安装了 webpack,我重新安装了@angular/cli、@ngtools/webpack,使用--force 清除了缓存,运行 npm install。我还重新安装了全局@angular/cli。

在某些时候,我最终在本地节点模块或 %appdata%/npm 中得到了一个或没有 @ngtools/webpack 版本。错误是一样的。

在此处输入图像描述

我认为它与@ngtools/webpack 无关我该如何调查?

0 投票
1 回答
245 浏览

angular - @ngtools/webpack 不通过入口点导入构建

我直接在 angular-app 中使用@ngtools/webpack(没有 angular-cli),我得到了意想不到的行为。Aot 插件构建项目中的所有 ts 文件,但某些文件不是由入口点文件 (main.ts) 导入的。例如 - ts-loader 仅构建在入口点文件 (main.ts) 中通过导入找到的文件。这是错误还是功能?

我创建了 mini-repo:https ://github.com/alxpsr/ngtools-unexpected 运行 npm run build:aot 并且出现错误。但是如果你运行 npm run build:tsloader - 构建不会有错误。

如果这不是错误,请告诉我这两个版本之间有什么区别?

PS我知道tsconfig.json中的文件和包含选项,我可以在那里更清楚地指定文件。我想了解这两个版本之间的区别。^_^

0 投票
1 回答
910 浏览

angular - Angular 与 Ivy + webpack - 比以前更大的包

我在选择“Ivy”的同时升级到了 Angular 8.0。一切都可以编译,但就捆绑包大小而言,结果令人失望。实际上,与 ng7 相比,我与 Angular 的供应商捆绑包的大小有所增加。

没配置对吧?

  • 我正在使用节点 12
  • @angular 8.0 和 @ngtool 8.01

tsconfig

在此处输入图像描述

0 投票
0 回答
39 浏览

angular - 减少来自 @ngtools/webpack 的日志记录

我想减少使用 @ngtools/webpack 运行生产 AoT Angular 构建时生成的日志记录量。目前,它正在生成一个充满“解析模块”文本的许多 MB 大日志。我是否缺少任何选项来禁用或减少此日志记录?

我尝试设置 webpack stats: "none" 并没有减少此日志记录。

我正在使用 @ngtools/webpack 的 7.3.9 版和 webpack 的 4.33.0 版。

0 投票
1 回答
398 浏览

angular-aot - @ngtools/webpack 从 Angular4 迁移到 Angular7 后不编译项目代码

我将 angular4 应用程序迁移到 Angular7 并解决了 dev 和 prod 构建,但 AOT 构建没有转换应用程序代码(app.module)。主包和 polyfill 包大小各只有 1 kb。查看输出控制台,它似乎没有编译任何模块。

webpack.config.js :

tsconfig.webpack.json:

Angular-V7 Webpack - 4 节点 - 8.11.1

0 投票
0 回答
2249 浏览

webpack - --mode 开发错误:NormalModuleFactory.beforeResolve 不再是瀑布挂钩

我一起使用 webpack 5 和 @ngtools/webpack 来构建 Angular 应用程序。当我运行时webpack --mode development出现以下错误:

请注意,在我使用 @ngtools/webpack 9.0.0 之前,此时我遇到了另一个错误。

不是版本是 9.1.4 并出现错误。

这是整个依赖项:

如果我将 webpack 版本更新到 4.43.0 一切正常。看来 webpack 和 @ngtools/webpack 不能一起工作。

这里是否有我错过的任何其他信息可能对使用 webpack 5 设置这个项目有用?