文章目录
凌晨3点,你盯着PR里队友那句
if(condition){doSomething();}和自己写的if (condition) { doSomething(); }陷入沉思——这空格和换行的战争,到底还要打多久? (别笑!这玩意儿真能吵起来!)
朋友们,今天不讲高深算法,不聊炫酷框架,咱们解决一个真实又高频的痛点:代码格式化!说人话就是——怎么让代码看起来像一个人写的? 🤯 而主角就是江湖人称"格式化独裁者"的 Prettier!
🤔 为什么代码格式这事儿能让人抓狂?(团队血泪史啊!)
先别急着嗤之以鼻!想想这些场景熟不熟悉:
- PR Review 变 “大家来找茬”:80% 的评论是 “这里少个空格”,“那里换行不对”…… 核心逻辑?压根没人看!(太真实了… 😭)
- 编辑器配置地狱:A 用 VSCode,B 用 WebStorm,C 用 Vim…
.editorconfig配了八百遍,保存时格式还是乱飞! - 个人强迫症 vs 团队规范:单引号党 vs 双引号党,尾逗号爱好者 vs 反对者… 吵到天荒地老也没结果。
- 时间杀手! 手动调整缩进、对齐、换行… 这些时间拿去摸鱼(划掉)解决BUG不香吗?
Prettier 诞生就为解决这事:别吵了!格式?我说了算! 它不跟你商量格式好不好看,只保证一件事:所有文件、所有人、所有地方,格式绝对!绝对!绝对!一致! (重要的事说三遍!!!)
🚀 Prettier 的"独裁"三板斧:快!狠!准!
1. “固执己见” (Opinionated) 是核心!
- 它没有几十个配置项让你纠结! (超级重要) 双引号还是单引号?分号要不要?对象大括号换不换行?Prettier 直接帮你决定了! 有且只有一套官方推荐规则。
- 好处? 团队零配置争议! 装它就完事了,省下吵格式的时间去撸需求吧!
- “啊?不能自定义?那我不用了!” —— 别急!后面聊这个痛点。
2. “零配置” 开箱即用 (Out of the Box)
- 安装完,一条命令 (
prettier --write .) 或者配置好编辑器保存自动触发… 搞定!整个项目瞬间改头换面。 - 不需要研究如何配置
.eslintrc的indent规则,不需要调整stylelint的max-line-length… 它把这些脏活累活全包了! (解放生产力啊同志们!)
3. 语言支持广到离谱!
- JavaScript (ESNext, JSX, Flow, TypeScript 统统拿下!)
- HTML, CSS, SCSS, Less
- JSON, Markdown, YAML
- GraphQL, SQL…
- 前端主流生态全覆盖! 再也不用给不同语言配不同的Formatter了!
# 安装?简单到哭!(Node.js 环境必备)
npm install --save-dev prettier
# 或者
yarn add --dev prettier
# 格式化整个项目所有支持的文件!(--write 表示直接覆盖保存)
npx prettier --write .
🛠 真香现场:怎么让它融入你的工作流?
📌 基础使用:命令行 & 配置文件
- 项目根目录创建
.prettierrc(或prettier.config.js):虽然它固执,但也不是完全不能商量! 少数常用选项可以改:{ "printWidth": 100, // 行长限制(默认80,现代屏幕宽了可以调大点) "tabWidth": 2, // 缩进空格数(2 or 4?Prettier默认2,这里可以按需改) "singleQuote": true // 用单引号!默认是false(双引号)。终于能按自己喜好(团队规范)来了! // ... 其他非常有限的选项见官网 } - 忽略文件:创建
.prettierignore(语法类似.gitignore)# 忽略打包产物 /dist /build # 忽略特定文件 legacy-ugly-code.js
🔥 编辑器集成:保存即格式化!(效率飙升的关键)
- VSCode: 安装官方插件
Prettier - Code formatter。设置里搜Format On Save勾上!从此按Ctrl+S就是见证奇迹的时刻✨。 - WebStorm/IntelliJ: 内置支持!Settings -> Languages & Frameworks -> JavaScript -> Prettier 启用并勾选
On save。 - Vim/Neovim, Sublime Text, Atom… 统统有成熟插件!把你的编辑器变成格式化的变形金刚!
⚙️ 进阶必备:Git Hooks (提交前自动格式化)
- 痛点: 总有队友忘记格式化就提交!污染 Git 历史!
- 神器:Husky + lint-staged
npm install --save-dev husky lint-staged - 配置
package.json:{ "scripts": { "prepare": "husky install" // 初始化husky }, "lint-staged": { "*.{js,jsx,ts,tsx,css,scss,md,json}": [ "prettier --write" // 只格式化暂存区的文件! ] } } - 添加 Git Hook:
npx husky add .husky/pre-commit "npx lint-staged" - 效果: 当你执行
git commit时,lint-staged 会自动用 Prettier 格式化你本次提交的所有文件,然后再提交! 从此仓库里的代码永远整洁如新! (团队协作福音!!!)
🤯 争议与思考:Prettier 是天使还是魔鬼?
Prettier 的"固执"是它最大的优点,也是争议的源头。
- 吐槽点: “它把我精心调整的格式搞乱了!” “这个换行好丑啊!为什么不能这样写?”
- 我的看法 (纯个人观点!):
- 一致性 > 个人审美。 在团队协作中,"所有人都一样"远比"我觉得这样好看"重要一百倍。Prettier 强行消灭了所有关于格式的讨论,这点价值连城。
- 习惯养成后,真香! 刚开始可能觉得它的规则别扭,坚持用一周,你会发现自己再也不关心格式了,大脑完全聚焦在逻辑和业务上! 生产力暴涨!
- 它确实不完美! 某些格式化结果可能不够理想(比如超长对象/JSX)。但它的优势碾压了这点小瑕疵。实在不行?可以暂时用
// prettier-ignore注释局部禁用。
所以,它更像一个"必要的魔鬼"。 用它,意味着团队自愿交出个人格式审美的自由,换取高度一致性和免于争吵的宁静。
🌟 总结:Prettier 的价值远超一个工具
- 🚀 提升效率: 告别手动调整格式,编辑器保存即完成。
- 🕊 消除噪音: PR Review 聚焦逻辑和设计,不再被空格换行刷屏。
- 🤝 统一规范: 强制执行统一的代码风格,新人上手成本骤降。
- 🧘 解放心智: 开发者无需再为琐碎的格式分神,专注代码本质。
它不是万能的,但在解决"代码格式统一"这个特定问题上,它接近完美。 如果你和你的团队还在为缩进、引号、分号争论不休,还在为PR里满屏的格式问题修改意见头疼… 别犹豫了,赶紧上 Prettier 吧!
安装它,配置好编辑器保存自动格式化,加上 Git Hook… 然后,享受那份前所未有的、安静的、整齐划一的代码世界! 谁用谁知道!(真香警告⚠️)

被折叠的 条评论
为什么被折叠?



