我有一个延迟加载的模块,仅用于开发目的,我不想将其部署到生产版本中。
在守卫的帮助下,我拒绝了激活和加载:
const routes: Routes = [
{
path: 'dev',
loadChildren: './features/dev/dev.module#DevModule',
canActivate: [DevelopmentGuard],
canLoad: [DevelopmentGuard]
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
后卫:
@Injectable({
providedIn: 'root'
})
export class DevelopmentGuard implements CanActivate, CanLoad {
constructor() {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
return this.can();
}
canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
return this.can();
}
canLoad(route: Route, segments: UrlSegment[]): boolean {
return this.can();
}
private can(): boolean {
return (environment.production === false);
}
}
它起作用,我的dev模块仅在dev中起作用,但是dev模块的脚本在构建中。
有没有一种方法可以从生产版本中完全删除脚本?
答案 0 :(得分:5)
选项1
consoleInputReadTask
选项2。
consoleInputReadTask.stop()
使用选项2,如果将devRoutes移至环境配置,则可以使其变得更好