我做了构建-prod并遇到了一个奇怪的错误
_zone_symbol__error
:
_zone_symbol__error
:
Error: Uncaught (in promise): Error: Runtime compiler is not loaded Error: Runtime compiler is not loaded at d (http://localhost:4200/polyfills.cd321326a3dfc08ceb46.bund
在我的例子中,它可以为构建禁用Ahead-of-Time编译
原文链接:https://www.f2er.com/angularjs/142306.htmlng build -prod --aot=false
这样,源仍然是打包和丑化的,并且包含了Just-in-Time编译器.
main.bundle js文件比使用aot编译时小,但vendor.bundle js增加约1.5 MB.
编辑2018-07-11
似乎有两种情况:
1)如果你的项目有意创建真正的动态组件,目前包含JIT编译器的唯一方法似乎是禁用生产构建的AOT.有关讨论,请参见https://github.com/angular/angular/issues/11780
2)如果您的项目不需要动态创建组件而您不知道错误发生的原因,则禁用AOT可能是一种解决方法,但要注意这些缺点.如果没有AOT,您的文件大小会更大,用户从应用程序开始需要更长的时间.在这种情况下,调查生成构建中引用JIT编译器的原因可能更为合适.
有一些SO讨论(AngularCli & AOT: ERROR Error: Runtime compiler is not loaded,Trouble shoot “Runtime compiler is not loaded”)围绕这些讨论建议延迟加载使用’COMPILER_PROVIDERS’的第三方模块可能是错误的原因.在撰写本文时,他们没有接受的答案.
有关使用延迟加载模块时的另一个陷阱的描述,请参阅此主题中的Alexei的答案