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

Angular 17与Prettier(^3.1)模板缩进异常问题求助

Angular 17 + Prettier 3.1 模板@if/@for指令缩进异常修复

问题现象

升级Angular到17版本后,用Prettier 3.1格式化模板文件时,新控制流语法@if、@for的嵌套缩进未被正确处理。格式化后的代码无层级缩进:

@if(condition) {
@for(foo of data.foo; track foo) {
<div>{{foo}}</div>
}
}

期望的正确格式化结果应为:

@if(condition) {
  @for(foo of data.foo; track foo) {
    <div>{{foo}}</div>
  }
}

解决步骤

1. 更新Prettier Angular插件

Angular 17的新控制流语法需要对应插件支持,安装最新版prettier-plugin-angular:

npm install --save-dev prettier-plugin-angular@latest
# 或使用yarn
yarn add -D prettier-plugin-angular@latest

2. 配置Prettier识别Angular模板

在项目根目录的Prettier配置文件(如.prettierrc、prettier.config.js)中,确保插件和解析器配置正确:

{
  "plugins": ["prettier-plugin-angular"],
  "overrides": [
    {
      "files": ["*.html"],
      "options": {
        "parser": "angular"
      }
    }
  ]
}

3. 重新格式化模板

运行格式化命令验证效果:

npx prettier --write src/**/*.html

原因说明

Angular 17引入的@if/@for等新控制流语法是新增特性,旧版本的Prettier Angular插件未适配该语法,导致无法正确识别嵌套结构并处理缩进。更新插件到兼容Angular 17的版本即可解决问题。

内容的提问来源于stack exchange,提问作者Matt.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 00:42:09