You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:38:33