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

VSCode中配置Prettier保留嵌套选择器前空行的解决方案

解决Prettier删除SCSS嵌套选择器前空行的问题

我完全懂这种头疼的感觉——团队硬要求的代码格式和自己习惯用的Prettier默认行为打架,太闹心了。针对你提到的嵌套选择器前必须保留空行的需求,其实改改Prettier配置就能搞定,具体步骤如下:

1. 先确认Prettier版本

首先得确保你用的是Prettier v2.4.0及以上的版本,因为针对SCSS嵌套块的空行控制选项是在这个版本之后才加的。如果版本太低,先升级一波:

npm install prettier@latest --save-dev
# 用yarn的话就执行这个
yarn add prettier@latest --dev

2. 修改Prettier配置文件

在项目根目录下创建或者编辑Prettier的配置文件(比如.prettierrc.json、.prettierrc或者prettier.config.js都行),加上对应的SCSS配置项:

JSON格式配置示例

{
  "scssEmptyLineBetweenBlockChildren": true
}

JS格式配置示例

module.exports = {
  scssEmptyLineBetweenBlockChildren: true,
};

这个配置项会让Prettier在SCSS嵌套块的子元素之间(包括父块里第一个子元素的前面)保留空行,刚好匹配你项目的要求:

比如你期望的格式:

.about {

  &__inner {
    color: red;
  }
}

Prettier格式化之后会乖乖保留这个空行,不会再给你删掉了。

3. 要是项目还搭了ESLint的话

如果你的项目同时在用ESLint,记得要确保ESLint的Prettier插件(eslint-plugin-prettier)不会覆盖咱们刚设置的配置。检查一下你的.eslintrc里要有这些内容:

{
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error"
  }
}

这样ESLint就会直接用咱们定义的Prettier配置,不会搞出冲突来。

备选方案:实在不行就忽略(不推荐)

如果因为某些原因没法升级Prettier或者用上面的配置,你可以在不想让Prettier格式化的代码块前后加/* prettier-ignore */注释,强制它跳过这部分:

/* prettier-ignore */
.about {

  &__inner {
    color: red;
  }
}

不过这种方法有点笨,会多一堆注释,还是优先用前面的配置方案更靠谱。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:37:41