jpe*_*rez 18 angular-cli angular
我正在转换一个使用angular cli的项目,一切正常(一旦它构建)但我在构建期间有一个奇怪的行为.
用ng serve
我总是得到这个错误我第一次尝试:错误无法读取空的特性"loadChildren"
与ng build抛出了同样的错误
但是如果我使用ng build --watch
并且在第一次构建失败后我编辑文件以再次触发构建它将成功.我也有同样的行为ng build -prod --watch
任何想法如何第一次正确构建?
请注意我的项目中没有任何子路由/模块,我没有任何其他输出来查看导致此问题的原因.
更新:使用子路由测试,我仍然得到相同的行为
更新:从4.0.0将@angular libs降级到2.4.0并且我仍然得到完全相同的行为,但是有不同的错误消息;
AppModule中的错误不是NgModule
Mic*_*ley 11
我还遇到了与Angular CLI v1.6类似的问题.
在我的情况下,我没有使用.concat()或任何其他类型的路由器定义的动态操作.
相反,我在一个路由的数据属性中有一个函数,它是一个匿名箭头函数.将其更改为命名导出函数可以解决我的问题.
之前:
{
path: ':id',
component: ProductDetailComponent,
data: {
breadcrumb: (data: any, params: any) => {
let id = params['id'];
return id === 'create' ? 'New Product' : data.product.ShortDescription;
}
}
}
Run Code Online (Sandbox Code Playgroud)
后:
{
path: ':id',
component: ProductDetailComponent,
data: { breadcrumb: getBreadcrumb }
}
export function getBreadcrumb(data: any, params: any): string {
let id = params['id'];
return id === 'create' ? 'New Product' : data.product.ShortDescription;
}
Run Code Online (Sandbox Code Playgroud)
我的路由有多个ts文件,我所做的是在app.routes中导入所有这些路由,然后将它们连接起来调用forRoot:
export const appRoutes = xRoutes.concat(zRoutes) 等等
将所有路由放在一个文件/ export const语句后,错误/怪异的构建行为消失了.
以我为例,对相关Github问题的回答解决了我的错误。
万一它被删除,修复程序将更改此:
export const ROUTES = MY_ROUTES.map(TO_ANGULAR_ROUTE)
Run Code Online (Sandbox Code Playgroud)
对此:
export const ROUTES = [];
ROUTES.push(...MY_ROUTES.map(TO_ANGULAR_ROUTE));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14403 次 |
| 最近记录: |