Angular AoT and Rollup - Error: Runtime compiler is not loaded

Angular AoT and Rollup - Error: Runtime compiler is not loaded

在过去的 6 个月里,我一直在使用 Angular 构建一个仪表板应用程序,在那段时间里,我使用 JiT 编译和 gulp 浏览器同步来获得即时更新,这是一个非常好的开发工作流程当我进行更改时。效果很好。

我已经到了很高兴部署生产版本的地步,但是,我 运行 遇到 AoT 和汇总的问题。

我遵循了 angular.io 指南,但得到了以下结果

ERROR Error: Uncaught (in promise): Error: Runtime compiler is not loaded
Error: Runtime compiler is not loaded
    at _throwError (build.js:5036)
    at Compiler.compileModuleAsync (build.js:5065)
    at MergeMapSubscriber.project (build.js:34798)
    at MergeMapSubscriber._tryNext (build.js:30450)
    at MergeMapSubscriber._next (build.js:30440)
    at MergeMapSubscriber.Subscriber.next (build.js:425)
    at ScalarObservable._subscribe (build.js:846)
    at ScalarObservable.Observable._trySubscribe (build.js:708)
    at ScalarObservable.Observable.subscribe (build.js:696)
    at MergeMapOperator.call (build.js:30415)
    at _throwError (build.js:5036)
    at Compiler.compileModuleAsync (build.js:5065)
    at MergeMapSubscriber.project (build.js:34798)
    at MergeMapSubscriber._tryNext (build.js:30450)
    at MergeMapSubscriber._next (build.js:30440)
    at MergeMapSubscriber.Subscriber.next (build.js:425)
    at ScalarObservable._subscribe (build.js:846)
    at ScalarObservable.Observable._trySubscribe (build.js:708)
    at ScalarObservable.Observable.subscribe (build.js:696)
    at MergeMapOperator.call (build.js:30415)
    at resolvePromise (zone.js:769)
    at resolvePromise (zone.js:740)
    at zone.js:817
    at ZoneDelegate.invokeTask (zone.js:424)
    at Object.onInvokeTask (build.js:6048)
    at ZoneDelegate.invokeTask (zone.js:423)
    at Zone.runTask (zone.js:191)
    at drainMicroTaskQueue (zone.js:584)
    at ZoneTask.invoke (zone.js:490)

我还使用了一些可能导致问题的不同 angular 插件(但是我找不到任何关于 AoT 问题的参考),即 MyDatePickerMyDateRangePicker.我还有几个 js 库,包括 D3.jsmomement.js

所以我的问题是,是不是我做错了什么导致我的 build.js 文件抛出 运行编译器未加载?

如果有人对这个问题有任何见解,如果您需要任何特定的代码片段让我知道,我们将不胜感激,正如我提到的,我的 tsconfig-aot.jsonrollup-config.json 与angular.io

提前致谢

非常感谢 yurzui 在评论中帮助我回答我自己的问题。

帮助我找到运行时编译器加载位置的方法是进入我生成的 build.js 并找到 compileModuleAsync 的使用。我在 loadChildren 方法中找到它,删除它后在浏览器中成功使用项目 运行。

但是,我不确定为什么 loadChildren 会导致编译器在汇总时加载。

希望对您有所帮助。