angular cli AOT编译错误

时间:2016-12-31 03:31:17

标签: angular command-line-interface angular-cli

我正在使用角度cli站点上的简单启动器角度cli示例。我在app文件夹外创建了一个服务,并将其包含在provider ..etc中的app模块中。不要问我为什么......想象一下我创建的服务,我计划在不同的角度项目之间分享。现在ng服务工作,但ng服务 - 打破打破。这是我收到的错误。任何想法如何解决它?感谢

以下是我的项目结构的链接

https://s3.amazonaws.com/uploads.hipchat.com/20493/94971/eVkgsEDXM8Kfzs1/upload.png

ng serve - 以下错误:

ERROR in Error遇到静态解析符号值。不支持调用函数&makeDecorator',函数调用。考虑代表 使用对导出函数的引用来拉伸函数或lambda,解决C:/ ANGULAR PROJECTS / testNgCLI / node_modul中的符号Injectable es /@angular/core/src/di/metadata.d.ts,在C:/ ANGULAR PROJECTS / testNgCLI / node_modules / @ angular / core / src / di / opaque_t中解析符号OpaqueToken oken.d.ts,解决C中的符号OpaqueToken:/ ANGULAR PROJECTS / testNgCLI/node_modules/@angular/core/src/di/opaque_token.d.ts

CLI版本: angular-cli:1.0.0-beta.24 节点:7.3.0 os:win32 x64

2 个答案:

答案 0 :(得分:1)

我认为问题在于服务中的代码。这也发生在我身上,错误是一样的:

  

调用函数'makeDecorator',不支持函数调用。考虑使用对导出函数

的引用来重新编写函数或lambda

您正在使用一些名为makeDecorator的匿名函数。要使代码为AoT做好准备,您需要将其移动到单独的函数并将其导出(也需要是经典的function,而不是=> lamda)。

你需要这样的东西:

export function makeDecorator() {
    // implementation...
}

答案 1 :(得分:-2)

您的所有代码都应位于单个app文件夹中,以跟随Angular 2 StyleGuide。另外,我在AngularCLI中看到了您的问题。 CLI严格遵循样式指南,因此问题可能会被解决。

app文件夹中,你可以创建如下内容:

app/
|
+-- shared/
    |
    +-- utils/
        |
        + -- file.service.ts
    +-- shared.module.ts // this will be the module that declares and exports shared files
+-- app1/
    |
    +-- app1.module.ts // declare and export app1 stuff
+-- app2/
    |
    +-- app2.module.ts // declare and export app2 stuff
+-- app.module.ts // import app1, app2, and shared

我建议你不要为app1app2命名,因为它只是不好的做法,更像是adminuser例如,当必须修复错误时,将更容易导航。

希望这很清楚。如果不是,我可以尝试更好地解释。