2017-04-17 107 views
4

为了引入更新的版本,我正在升级以前可用的ng2应用中的Angular CLI(v1.0.0),Angular(v4.0.2)和相关软件包角材料。与因重大更改几个其他错误战斗后,我留下了这样的构建:Angular 4构建错误:遇到的错误静态解析符号值

ERROR in Error encountered resolving symbol values statically. Only initialized variables and constants can be referenced because the value of this variable is needed by the template compiler (position 15:22 in the original .ts file),

resolving symbol ROUTES in /path/node_modules/@angular/router/src/router_config_loader.d.ts,

resolving symbol makeRootProviders in /path/node_modules/ui-router-ng2/lib/uiRouterNgModule.d.ts,

resolving symbol UIRouterModule.forRoot in /path/node_modules/ui-router-ng2/lib/uiRouterNgModule.d.ts,

resolving symbol AppModule in /path/src/app/app.module.ts,

resolving symbol AppModule in /path/src/app/app.module.ts

ERROR in ./src/main.ts Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/path/src' @ ./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配置的函数,但这没有帮助。援助感谢。

回答

0

我认为问题是与一个导入语句。它看起来像你试图导入ROUTES到您的.ts文件中的一个,如:

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

任何进口应当从@angular/router'@angular/router/src/router_config_loader'。可能发生的是您的IDE自动为您导入常量,并使用了错误的路径。

我有一个类似的问题,解决this SO answer

相关问题