我正在使用 Angular CLI 站点上的简单入门 Angular CLI 示例。我在 app 文件夹外创建了一个服务,并将其包含在 providers ..etc 的 app 模块中。不要问我为什么……想象一下我创建的一项服务,我计划在不同的 Angular 项目之间共享。现在 ng serve 工作但 ng serve --aot 中断构建。这是我收到的错误。任何想法如何解决它?谢谢
这是我的项目结构的链接
https://s3.amazonaws.com/uploads.hipchat.com/20493/94971/eVkgsEDXM8Kfzs1/upload.png
ng serve -- aot 错误如下:
错误中的错误遇到静态解析符号值。调用函数“makeDecorator”,不支持函数调用。考虑代表 将函数或 lambda 与导出函数的引用结合起来,在 C:/ANGULAR PROJECTS/testNgCLI/node_modul 中解析符号 Injectable es/@angular/core/src/di/metadata.d.ts,解析符号OpaqueToken in C:/ANGULAR PROJECTS/testNgCLI/node_modules/@angular/core/src/di/opaque_t oken.d.ts,解析符号OpaqueToken in C:/ANGULAR PROJECTS/testNgCLI/node_modules/@angular/core/src/di/opaque_token.d.ts
CLI 版本: Angular -cli:1.0.0-beta.24 节点:7.3.0 操作系统:win32 x64
最佳答案
我认为问题出在服务内部的代码上。我也遇到了,报错是一样的:
Calling function 'makeDecorator', function calls are not supported. Consider rep lacing the function or lambda with a reference to an exported function
您正在使用一些名为 makeDecorator
的匿名函数。为了让代码为 AoT 做好准备,您需要将其移动到单独的函数中并将其导出(它还需要是经典的 function
,而不是 =>
lamda)。
你需要有这样的东西:
export function makeDecorator() {
// implementation...
}
关于angular cli AOT编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405179/