news 2026/4/16 11:53:06

大多数开发者都错误地使用了Prettier

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大多数开发者都错误地使用了Prettier

点击上方 程序员成长指北,关注公众号

回复1,加入高级Node交流群

引言

Prettier 就像现代 Web 开发里的咖啡机:人人都在用,但真正了解它如何运作的人却很少。

大多数开发者安装完它、打开 “Format on Save”,然后就不再管了。

但有一个尴尬的事实:

如果你只是安装了 Prettier,却从未配置它,那你大概率是在“错误使用”它。

而且,这和“缩进用 Tab 还是 Space”无关;真正重要的是理解 Prettier 如何融入你的工作流,它如何与 ESLint 协作,以及它如何影响团队的代码一致性。

读完本文你将了解:

  • 开发者最常犯的 Prettier 使用误区

  • Prettier 的正确配置及集成方式

  • 如何停止“与格式化工具对抗”,让它真正为你服务


1. Prettier 实际在做什么(以及不做什么)

先澄清一个巨大的误解:

Prettier 不会提高你的代码质量。

它不会找 Bug,也不会优化逻辑。

它唯一做的,就是确保无论谁写的代码,都能保持一致的格式。

可以把它理解成代码的自动语法排版工具。 它不会改变你要表达的内容,只是让内容更易读。

示例

❌ 未使用 Prettier:

function greet(name){console.log('hello '+ name)}

✅ 使用 Prettier:

function greet(name) { console.log("hello " + name);}

两段代码都能运行。

但后者更易读、易扫描、易维护,而这正是 Prettier 的意义。


2. 开发者最常犯的错误:让 Prettier 和 ESLint“互殴”

如果你见过 “auto-fix → reformat → revert → reformat again” 的无限循环,那你已经掉进了工具冲突的地狱。

这通常发生在开发者同时启用 Prettier 和 ESLint 的格式化规则,导致两者互相争夺代码格式的控制权。

要解决这个问题,你必须让Prettier 负责格式化,ESLint 只负责规则校验

以下是让它们和平共处的方式 👇

Step 1:安装 Prettier + ESLint 集成

npm install --save-dev eslint-config-prettier eslint-plugin-prettier

Step 2:更新.eslintrc

{ "extends": ["eslint:recommended", "plugin:prettier/recommended"], "plugins": ["prettier"], "rules": { "prettier/prettier": "error" }}

✅ 现在 ESLint 会使用 Prettier 的格式规则,并把精力集中在真正的问题上(未使用的变量、未定义的 import 等)。

再也不会发生 linter 和 formatter 的“拔河大战”。


3. 第二大误区:依赖默认配置

很多开发者甚至没有创建.prettierrc文件。

这意味着他们在使用 Prettier 的全局默认配置,而这很可能与团队的编码风格不匹配。

在项目根目录创建.prettierrc

{ "semi": true, "singleQuote": true, "tabWidth": 2, "printWidth": 100, "trailingComma": "es5", "arrowParens": "always"}

现在你的格式是明确的、可控的、可预期的,团队成员打开项目也不会产生格式差异。

💡提示:一定要把.prettierrc提交到 Git。这是团队统一格式的基础。


4. 第三大误区:不使用.prettierignore

许多开发者不知道:

Prettier 默认会格式化所有文件

包括构建产物、JSON 配置、自动生成文件,这些会显著拖慢格式化速度。

创建.prettierignore

node_modulesdistbuildcoveragepackage-lock.json.next

这样 Prettier 就只会处理真正需要格式化的文件。


5. 第四大误区:忽略 “Check Mode”

Prettier 的隐藏宝藏是--check选项。

  • --write:直接格式化文件

  • --check:只检查文件是否已符合格式

npx prettier --check .

非常适合用于CI/CD 或 Git 提交钩子,可以防止未格式化的代码进入仓库。

配合 Husky + Lint-Staged:

{ "lint-staged": { "*.{js,ts,jsx,tsx,css,html,md}": "prettier --check" }}

效果?

每次提交时,Prettier 会自动确保所有文件都符合格式规范。


6. 第五大误区:未同步编辑器设置

如果你是 VS Code 用户,这点尤其重要。

即使安装了 Prettier,如果它不是默认 formatter,它也不会自动运行。

打开 VS Code 设置(JSON),添加:

{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "prettier.requireConfig": true}

这样可以确保:

  • 只有 Prettier 负责格式化

  • 只有在有.prettierrc的项目中运行(避免误伤)

  • 保存时自动格式化


7. 第六大误区:忽略换行符(Line Endings)

这是跨 Windows 与 macOS 团队最隐蔽的“痛点”。

不同系统使用不同的换行符(CRLF vs LF),导致 Git 出现大量“幽灵 diff”。

.prettierrc中添加:

{ "endOfLine": "lf"}

.gitattributes中设置:

* text eol=lf

从此 Git 不再出现莫名其妙的文件修改。


8. 第七大误区:没有自动化格式化

如果你还在手动运行 Prettier,那就是在浪费时间。

package.json中加入:

"scripts": { "format": "prettier --write .", "check-format": "prettier --check ."}

现在你可以运行:

npm run formatnpm run check-format

配合 Husky 的 pre-commit hook,你甚至不需要思考格式化这件事。


9. 第八大误区:把 Prettier 当成“普通工具”

Prettier 从来不是一个简单的小工具,它是一份团队契约。

它代表团队对代码风格的一致性达成了共识,避免无休止的讨论:

  • “要不要加分号?”

  • “这行要不要换行?”

  • “大括号前要不要空格?”

当 Prettier 被纳入开发流程,它就成为整个代码库的唯一格式真相来源。

真正的价值不是更漂亮的代码,而是更快的 Code Review、更少争论、更高协作效率。


10. 正确使用 Prettier 的方式(专业团队实践)

Step-by-step

1. 安装 Prettier

npm install --save-dev prettier

2. 创建.prettierrc

{ "singleQuote": true, "semi": false, "trailingComma": "all"}

3. 创建.prettierignore

node_modulesdistbuild

4. 集成 ESLint

npm install --save-dev eslint-config-prettier eslint-plugin-prettier

5. 配置 VS Code

{ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true}

6. 为 Git Hooks 自动化

npm install --save-dev husky lint-staged

7. 在 package.json 中加入:

{ "lint-staged": { "*.{js,ts,jsx,tsx}": "prettier --check" }}

至此,你已经构建了一个自动执行、无需人工干预、且被顶级工程团队广泛采用的格式化体系。

总结

Prettier 是最简单的前端工具之一,也是最容易被错误使用的工具之一。

如果你没有.prettierrc.prettierignore和 CI 检查,那你就错过了它真正的价值:

  • 彻底的格式一致性

  • 自动化工作流

  • 心智负担降低

当你正确使用 Prettier,它就不再只是“格式化工具”,而是开发文化的一部分。

所以问题是:

你真的正确使用 Prettier 了吗?

原文地址:https://codebyumar.medium.com/most-developers-use-prettier-wrong-are-you-one-of-them-05bb480e1e92

原文作者: CodeByUmar

Node 社群

我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加考拉【ikoala520】 好友回复「Node」即可。 “分享、点赞、在看” 支持一波👍
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 19:13:09

AI那些趣事系列113:DeepSeek-OCR深度解读——用“光学压缩”给 LLM 长文本处理 “瘦身”,从原理到落地一篇吃透

导读:本文是 “数据拾光者” 专栏的第一百一十三篇文章,这个系列聚焦广告行业自然语言处理与推荐系统实践。今天我们聊一个颠覆性的多模态模型 ——DeepSeek-OCR,它用 “光学压缩” 思路解决了大模型长文本处理的核心痛点,既不用堆…

作者头像 李华
网站建设 2026/4/14 9:24:16

如何快速掌握技术面试:Tech Interview Handbook 完整使用指南

Tech Interview Handbook(技术面试手册)是一个专为忙碌软件工程师设计的免费技术面试准备平台,提供经过精心筛选的算法问题、最佳实践指南和面试技巧。这个项目已经帮助超过100万名工程师成功通过技术面试,成为技术求职领域的标杆…

作者头像 李华
网站建设 2026/4/16 10:44:52

Lottie-Android多色渐变动画终极指南:5个核心问题深度解析

Lottie-Android多色渐变动画终极指南:5个核心问题深度解析 【免费下载链接】lottie-android Render After Effects animations natively on Android and iOS, Web, and React Native 项目地址: https://gitcode.com/gh_mirrors/lo/lottie-android 还在为Andr…

作者头像 李华
网站建设 2026/4/9 11:44:11

IDM激活脚本终极指南:轻松解锁下载管理器完整功能

还在为IDM试用期到期而烦恼吗?这款强大的激活脚本能够帮你彻底解决下载管理器的使用问题!🚀 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activatio…

作者头像 李华
网站建设 2026/4/8 9:31:11

拿到2N赔偿,笑惨了!这也许是命运最好的“破茧”机会

你好吖,我是晓衡!老铁,这个办公环境还行吧!这是我在上周置办的新的根据地,除了亮堂的的工位外,我最喜欢的就是健身房了,后面,就有机会跟大家直播撸铁、瑜伽、跳舞......哈哈&#xf…

作者头像 李华
网站建设 2026/4/15 6:09:57

终极窗口切换神器:告别macOS切换烦恼的完整解决方案

终极窗口切换神器:告别macOS切换烦恼的完整解决方案 【免费下载链接】alt-tab-macos Windows alt-tab on macOS 项目地址: https://gitcode.com/gh_mirrors/al/alt-tab-macos 还在为macOS系统自带的CmdTab功能不够用而烦恼吗?每次切换应用还要在…

作者头像 李华