Angular 10.2.4 CLI无法默认启用OnPush变更检测问题咨询
Angular 10.2.4 配置组件默认OnPush变更检测无效的解决方案
你的配置思路是对的,Angular 10.2.4的CLI确实支持通过schematics配置默认启用OnPush,没生效大概率是以下几个原因:
配置位置优先级问题:
检查angular.json里的schematics节点是否在对应项目的配置下(即projects[你的项目名].schematics)。根节点的schematics会被项目级别的配置覆盖,如果你的项目自己有schematics配置,根级的设置不会生效。缓存干扰:
CLI会缓存schematic模板,之前的默认配置可能还在缓存里。执行以下命令清理缓存后再重新生成组件:ng cache clean配置键的格式验证:
确认angular.json里的schematic名称是@schematics/angular:component(冒号分隔),而非用点分隔的@schematics/angular.component——后者CLI无法识别为正确的组件schematic配置项。
如果以上步骤都试过还是不行,可以手动修改本地组件模板作为临时方案:
找到node_modules/@schematics/angular/component/files/src/lib/__name@dasherize__/__name@dasherize__.component.ts文件,修改@Component元数据部分:
import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; @Component({ selector: 'app-__name@dasherize__', templateUrl: './__name@dasherize__.component.html', styleUrls: ['./__name@dasherize__.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush })
这样后续生成的组件就会默认带上OnPush配置,但注意更新依赖后这个修改会被覆盖,还是优先通过CLI配置解决。
内容的提问来源于stack exchange,提问作者Scott B
相关产品推荐
相关产品推荐

