我正在以前正在使用的ng2应用程序中升级Angular CLI(v1.0.0),Angular(v4.0.2)和相关软件包,以便引入更新版本的Angular Material。在因为破坏变化而与其他几个错误作斗争之后,我在构建中留下了这个:
ERROR in Error遇到静态解析符号值。只能初始化变量和常量,因为模板编译器需要此变量的值(原始.ts文件中的位置15:22),
> ./src/main.ts中的错误 找不到模块:错误:无法解析'/ path / src'中的'./$$_gendir/app/app.module.ngfactory' @ ./src/main.ts 5:0-74 @ multi ./src/main.ts
在/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
我相信错误涉及我的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 :(得分:0)
我认为问题在于导入声明。您似乎试图将ROUTES
导入到.ts
个文件中,例如:
import { ROUTES } from '@angular/router/src/router_config_loader';
任何导入均应来自@angular/router
而不是'@angular/router/src/router_config_loader'
。可能发生的是您的IDE自动为您导入常量,并且它使用了错误的路径。
我有类似的问题由this SO answer解决。