Angular AOT 和延迟加载。 TypeError:System.import 不是函数
Posted
技术标签:
【中文标题】Angular AOT 和延迟加载。 TypeError:System.import 不是函数【英文标题】:Angular AOT and lazy loading. TypeError: System.import is not a function 【发布时间】:2017-10-13 07:09:54 【问题描述】:我正在使用 Angular 4。在 AOT 并在惰性模块中运行汇总后出现此错误:
Error: Uncaught (in promise):TypeError: System.import is not a function
我的项目在 JIT 中运行良好,但在 AOT 中我无法重定向到惰性路由。 我不明白为什么会出现这个错误。
我该如何解决这个错误?
谢谢。
【问题讨论】:
错误原因是它尝试使用 SystemJS 加载惰性模块,而在 AOT 中运行时不存在该模块。但是我自己没有尝试过,所以我不能告诉你应该使用什么替代方案。支持您的问题。 你能提供你的路线文件吗 点击此链接 - ***.com/questions/31462866/… 检查您的打字稿版本。运行npm install
should not show any mismatch between angular packages and typescript
【参考方案1】:
如果不知道您的项目设置甚至完整的堆栈跟踪,很难给出明确的答案。许多旧的 Angular 应用程序使用 system.js(我讨厌它)、他们自己的 webpack 配置或 CLI(我最喜欢的)。
我想说的是,我目前在我提出使用 CLI 的旧项目中遇到此错误。
WARNING in ./node_modules/@angular/core/fesm5/core.js 15201:15-36
System.import() is deprecated and will be removed soon. Use import() instead.
For more info visit https://webpack.js.org/guides/code-splitting/
@ ./ClientApp/vendor.ts 11:0-23
这让我觉得您的问题可能出在 Angular 核心文件中(猜测没有堆栈跟踪),因此您可以尝试更新您的 Angular 核心文件。
【讨论】:
以上是关于Angular AOT 和延迟加载。 TypeError:System.import 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
带有 AOT 的延迟加载模块 - TypeError: '' 从 NGINX 提供时不是一个函数
Angular 6/7 AOT:动态模板渲染 - 为模块加载 JitCompiler