问题标签 [angular-ivy]
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 Ivy 构建时出现编译错误
我有一个 Angular 8 项目,当我启用 Angular Ivy 时,它在编译期间会失败。当我检查其他人提供的解决方案并更新到角度 8.1.0(从 8.0.3 开始)但问题仍然存在并不断给我以下错误:
我的 Angular Ivy 在 tsconfig.app.json 中启用。
我的 package.json 具有以下依赖项:
请帮助我解决上述问题。
angular - 如何使 Angular Ivy + Angular Universal 工作?
当我尝试在我的项目中使用 Ivy + Angular Universal 时出现错误。
我只有在 Ivy 模式下使用 Angular 时才会出现这个错误(当我在我的设置enableIvy
为 false 时,我tsconfig.app.json
可以成功构建我的应用程序)。
以下是重现我的问题的步骤:
1. 与 Ivy 的新项目
ng new test-angular --enableIvy
2.添加角通用
ng add @nguniversal/express-engine --clientProject test-angular
3. 构建时出现错误
ERROR in Node does not exist: "path_to/node_modules/@nguniversal/express-engine"
我的 ng --version 输出是:
如果我删除文件中的这些行main.server.ts
(在步骤 2 中生成的文件)
这些命令有效ng build
,ng serve
但我仍然可以使用 SSR(由于我猜想我已经删除的行而npm run serve:ssr
失败了......)。TypeError: provideModuleMap is not a function
谢谢你=)
angular - 从角度 8 的模块中获取注入器
问题:
我正在为角度的非路由模块设置延迟加载。在我使用的第 7 版中NgModuleFactoryLoader
,它的功能load
是延迟加载模块并获取模块的第一个入口点(以防万一)
但是在 Angular 8NgModuleFactoryLoader
中已弃用,所以我必须以这种方式加载模块:
这里的问题是我无法在新的延迟加载中检索工厂并在此处获取提供者(IVY 的想法之一 - 没有工厂)。
我已经尝试过的:
第一个解决方案(仅使用不适合我们的 JIT 编译器,因为我使用 AOT 编译器进行生产)
第二种解决方案(肮脏且未完全检查。它正在使用ngInjectorDef
IVY 的新功能并且还没有任何描述的 API):
ngInjectorDef
- 是一个静态模块类属性,由 Angular 添加,具有工厂、提供者和导入属性。
资料来源:
- https://netbasal.com/the-need-for-speed-lazy-load-non-routeable-modules-in-angular-30c8f1c33093(延迟加载不可路由的模块直到角度 8)
- https://herringtondarkholme.github.io/2018/02/19/angular-ivy/(IVY预览 - 见章节
No NgFactory file anymore
) - https://blog.angularindepth.com/automatically-upgrade-lazy-loaded-angular-modules-for-ivy-e760872e6084(描述 Angular < 8 和 Angular 8 中的延迟加载之间的差异。重要部分 - 从 NgModule 到 NgModuleFactory 与AOT编译器,现在基本上是我的问题)
angular - 装饰器不支持函数表达式考虑将函数表达式更改为导出函数
我正在尝试在我当前的项目中启用 angularivy,而 ng build 我得到了这个错误。
我已经检查了一些建议,例如在导出中创建函数并再次使用它,但错误发生了变化而不是被解决。
如果错误解决,它可能会成功构建
angular - 在 Angular 8+(和 Ivy 就绪?)中以编程方式加载模块
我的应用程序需要加载一组动态配置的功能模块(每个都有自己的附加路由),这些模块由配置文件(使用 XHR 加载)单独定义。我最初的计划是有一个模块字符串列表(如“plugins/my.module#MyModule”)并NgModuleFactoryLoader.load()
在引导时用于加载它们。
现在,当我开始实施时,我看到NgModuleFactoryLoader
不赞成使用 的import()
形式LoadChildren
,这在这种情况下不起作用(我在配置中只有字符串,没有模块引用)。
我如何在当前的(8+)Angular 中实现这一点?
angular - 用于生产构建的 Angular Ivy 编译器错误
我正在开发这个 Angular 8 应用程序,在尝试通过运行创建生产构建时遇到以下错误ng build --prod
。
我启用了常春藤,
我使用的 DexExtreme 库是,
该问题可能与此报告的问题有关。任何形式的帮助表示赞赏。
angular - Angular渲染引擎的目的是什么?
最近,我听说了很多关于 Angular 的新渲染引擎 - Ivy。我熟悉浏览器和 Photoshop 上下文中的“渲染引擎”一词。这两个渲染引擎都负责在屏幕上“绘制”图像。但是,我不太确定这个 Ivy 引擎会渲染什么?
angular - 仅适用于 localhost:4000/index.html 在 Angular 8 中与 Ivy 通用
我有一个带有 angular(v8.2.9) 通用(v8.1.1) 和 Ivy 的项目。
我使用以下命令构建和运行服务器端。
构建并成功运行,但是当localhost:4000
在浏览器中输入时,在控制台和服务器中显示白页而没有错误。
当成功进入localhost:4000/index.html
站点加载并正常工作时。
为什么要添加index.html
url ?
angular - 启用常春藤时的角度循环依赖
在我的 Angular 项目中启用 ivy 后,一切都会编译,但是在浏览器中启动应用程序时,我在应用程序引导期间收到以下错误:
我正在努力找出循环依赖在哪里以及为什么在不使用常春藤时它可以正常工作。我尝试使用 madge (madge --circular --extensions ts ./) 但没有找到循环依赖。
编辑:我已经手动完成了所有服务并验证它们之间没有循环依赖