我正处理一个奇怪的情况,至少对我而言。在我的angular 2项目中,在一个打字稿模块中,我试图替换下面显示的硬编码路径:
const routes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent, canActivate: [AuthGuardLogin] },
{ path: 'landing', component: LandingComponent, canActivate: [AuthGuardService] }
];
通过这种方法:
const routes: Routes = [
{ path: RootUris.Base, redirectTo: RootUris.Login, pathMatch: 'full' },
{ path: RootUris.Login, component: LoginComponent, canActivate: [AuthGuardLogin] },
{ path: RootUris.Landing, component: LandingComponent, canActivate: [AuthGuardService] }
];
RootUris就是这样的一个类:
export class RootUris {
public static readonly Base: string = '';
public static readonly Login: string = 'login';
public static readonly Landing: string = 'landing';
}
当我在dev中工作时一切顺利,即使我运行应用程序它工作正常但是当我尝试使用 ng build --prod 构建它时我得到了这个:
非法状态中的错误:没有成员预期的符号,但得到{“filePath”:“C:/dev/myApp/client/src/app/common/url-mapping.ts”,“name”:“RootUris” , “成员”:[ “基础”]}
> ./src/main.ts中的错误 找不到模块:错误:无法解析'C:\ repo \ behavioral-health-legend \ client \ src'中的'./$$_gendir/app/app.module.ngfactory' @ ./src/main.ts 4:0-74 @ multi ./src/main.ts
这里最罕见的是,如果我替换数组的第一个元素(只有那个,其余的仍然使用静态属性):
{ path: RootUris.Base, redirectTo: RootUris.Login, pathMatch: 'full' }
通过这个:
{ path: '', redirectTo: 'login', pathMatch: 'full' }
一切正常。
那么,有没有人知道为什么我不能在那里使用我的类的静态属性(在数组的第一个元素中)?有什么想法吗?