angular - 错误:未加载运行时编译器:在 Angular 7 的生产构建中
问题描述
我一直在研究 Angular 7 项目并实现了模块的延迟加载,如下所示:
{ path: 'privacy-statement', loadChildren: () => import('./privacy-statement/privacy-statement.module').then(m => m.PrivacyStatementModule) }
它在正常服务上工作正常,但是当我使用 --prod 服务应用程序并尝试访问“隐私声明”时,它会引发以下错误
错误:运行时编译器未在 t._tryNext (main.fd01867a26977f516ab1.js:1) 在 t._next 的 t.project (main.fd01867a26977f516ab1.js:1) 的 n.Ht (main.fd01867a26977f516ab1.js:1) 加载(main.fd01867a26977f516ab1.js:1) 在 t.next (main.fd01867a26977f516ab1.js:1) 在 main.fd01867a26977f516ab1.js:1 在 e.invoke (polyfills.a7106ca102d40b2f087a.main.js:1) 在 Object.onInvoke FD01867A26977F516AB1.JS:1)在E.Invoke(Polyfills.A7106CA102D40B2F087A.JS:1)at t.run(Polyfills.a7106ca102d40b2d40b2f087a.js:1)at P(Poly Fillss:polyfills.a77101106.a77106.a7106cA.a7106cA) js:1) 在 polyfills.a7106ca102d40b2f087a.js:1 在 e.invokeTask (polyfills.a7106ca102d40b2f087a.js:1) 在 Object.onInvokeTask (main.fd01867a26977f516ab1.js:1) 在 e.invokeTask (polyfills.a7106ca102d40b2f087a.js:1) 在 t.runTask (polyfills.a7106ca102d40b2f087a.js:1) 在 g (polyfills.a7106ca102d40b2f087a.js:1)
我已经搜索了一个解决方案,发现如果我禁用 AOT(将其设置为 false),它确实有效。但是它显着增加了服务时间,所以还有其他不影响加载时间的解决方案吗?
解决方案
Angular 8 提供了带有语法的延迟加载import()
,因此要么升级到 8,要么使用带有字符串的旧语法。
loadChildren: './path/privacy-statement.module#PrivacyStatementModule'
推荐阅读
- jenkins - JenkinsFile:如何在运行时从脚本设置 env.variable?
- r - 是否有必要仅在依赖因素上使用 sample.split() 函数?
- d3.js - 如何使线标记圆圈出现在面积图的顶部?
- tableau-api - 除非重新加载扩展,否则 Tableau 工作表 API 不会更新
- python - if 和 else 的问题(python,discord.py)
- jenkins - 詹金斯并行步骤中的迭代变量值
- flutter - 如何在图像上重叠贴纸并在 Flutter 中下载图像
- java - Spring boot 命令行应用程序不会以 neo4j 驱动程序终止
- reactjs - 组件在 React 中更改状态时未更新
- python - 如何使用 PyQt5 设置在任务栏上可见的应用程序图标