Angular 4构建错误:静态解析符号值时遇到错误

时间:2017-04-17 16:07:03

标签: angular build angular-ui-router angular-cli

我正在以前正在使用的ng2应用程序中升级Angular CLI(v1.0.0),Angular(v4.0.2)和相关软件包,以便引入更新版本的Angular Material。在因为破坏变化而与其他几个错误作斗争之后,我在构建中留下了这个:

  

ERROR in Error遇到静态解析符号值。只能初始化变量和常量,因为模板编译器需要此变量的值(原始.ts文件中的位置15:22),   

在/path/node_modules/@angular/router/src/router_config_loader.d.ts中解析符号ROUTES,   

解析符号makeRootProviders在/path/node_modules/ui-router-ng2/lib/uiRouterNgModule.d.ts,

解析符号UIRouterModule.forRoot in / path / node_modules / ui-router-ng2 / lib / uiRouterNgModule.d.ts,

解析符号AppModule在/path/src/app/app.module.ts,

解析符号AppModule在/path/src/app/app.module.ts

      ./src/main.ts中的错误   找不到模块:错误:无法解析'/ path / src'中的'./$$_gendir/app/app.module.ngfactory'    @ ./src/main.ts 5:0-74    @ multi ./src/main.ts

我相信错误涉及我的UIRouter配置(在app.module.ts中),但我真的不确定:

imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    MaterialModule.forRoot(),
    FlexLayoutModule,
    UIRouterModule.forRoot({
        states: [
            homeState,
            buttonsState,
            colorState,
            fontsState,
            iconsState,
            logosState,
            messagingState,
            typographyState
        ],
        useHash: false
    })
],

我怀疑当第一个错误解决后,第二个错误就会消失。我试图创建一个返回UIRouterModule配置的函数,但这没有帮助。援助表示感谢

1 个答案:

答案 0 :(得分:0)

我认为问题在于导入声明。您似乎试图将ROUTES导入到.ts个文件中,例如:

import { ROUTES } from '@angular/router/src/router_config_loader';

任何导入均应来自@angular/router而不是'@angular/router/src/router_config_loader'。可能发生的是您的IDE自动为您导入常量,并且它使用了错误的路径。

我有类似的问题由this SO answer解决。