本文目录导读:

统一代码排版(代码格式化)是团队协作和项目维护中非常重要的一环,要实现“一键统一”,需要根据你使用的编程语言和编辑器/IDE选择合适的工具。
以下是针对不同场景的统一代码排版解决方案:
核心原则:使用配置文件
绝大多数格式化工具都支持配置文件(如 .prettierrc, .editorconfig, eslintrc.js)。将配置文件放入项目根目录并提交到 Git 仓库,是所有团队成员获得统一格式的基础。
通用方案:EditorConfig(必备基础)
EditorConfig 不是代码格式化工具,而是跨编辑器的基础排版规范。 它负责最基础的“统一”:缩进是空格还是Tab、缩进宽度、文件编码、换行符等。
-
如何操作:
-
在项目根目录创建
.editorconfig文件。 -
编写规则(示例):
root = true [*] charset = utf-8 indent_style = space # 缩进使用空格(或 tab) indent_size = 2 # 缩进宽度为2(或4) end_of_line = lf # 换行符使用Unix风格 insert_final_newline = true # 文件末尾保留空行 trim_trailing_whitespace = true # 去除行尾空格 [*.md] trim_trailing_whitespace = false
-
效果: 无论团队成员用 VS Code、WebStorm、Sublime 还是 Vim,只要安装了官方插件,打开文件就会自动应用这些基础设置。
-
主流语言/框架的格式化工具(专业方案)
【前端 / JavaScript / TypeScript / CSS / JSON / Markdown】
推荐工具:Prettier(事实标准)
- 优点: 固执己见(Opinionated),几乎不需要配置,格式化结果非常稳定统一。
- 如何统一:
- 安装:
npm install --save-dev prettier - 配置文件:
.prettierrc(放在项目根目录){ "semi": false, // 不要分号 "singleQuote": true, // 使用单引号 "tabWidth": 2, "trailingComma": "all" // 末尾加逗号(推荐) } - 忽略文件:
.prettierignore(类似.gitignore,忽略 node_modules、build 等文件夹) - 一键格式化命令: 在
package.json中添加 Script:"scripts": { "format": "prettier --write \"src/**/*.{js,ts,jsx,tsx,css,json,md}\"" }执行
npm run format即可格式化整个项目。
- 安装:
【Python】
推荐工具:Black(官方推荐)
- 安装:
pip install black - 配置: 通常不需要配置文件,只需一个命令。
- 一键格式化:
black .(格式化当前目录及子目录所有.py文件) - Git钩子: 使用 pre-commit 钩子,在提交前自动格式化。
【Java】
推荐工具:Google Java Format 或 Prettier Plugin
- Maven/Gradle 配置: 添加
spotless插件。 - 常用命令:
mvn spotless:apply或./gradlew spotlessApply - IDE集成: IntelliJ IDEA 安装
Google Java Format插件。
【Go】
推荐工具:gofmt(官方标准)
- 用法:
gofmt -w .(-w表示直接写入文件) - 特点: Go语言官方强制统一格式,无需配置,
go fmt命令即可。
【C/C++】
推荐工具:clang-format
- 配置: 项目根目录放
.clang-format文件(可以使用 Google、LLVM、Chromium 等预设风格)。 - 命令:
clang-format -i *.cpp *.h - VS Code插件:
C/C++或Clang-Format。
【SQL】
推荐工具:sql-formatter
- 安装:
npm install -g sql-formatter或使用在线版。 - 命令:
sql-formatter your_query.sql
集成到工作流中(终极统一方案)
为了避免有人忘记手动格式化,最好的方法是在保存时或提交时自动格式化。
A. 编辑器自动保存格式化(最推荐,体验最好)
- VS Code:
- 安装对应插件(Prettier、ESLint、Black、Java Extension Pack 等)。
- 在
settings.json中设置:{ "editor.formatOnSave": true, // 保存时自动格式化 "editor.defaultFormatter": "esbenp.prettier-vscode", // 默认使用 Prettier "editor.codeActionsOnSave": { "source.fixAll.eslint": true // 保存时自动修复 ESLint } } - 团队统一: 在项目根目录创建
.vscode/settings.json文件夹并提交到仓库,团队所有成员自动继承这些设置。
B. Git Hooks(防止不合规代码入库)
使用 Husky + lint-staged(前端项目常用)或 pre-commit(Python项目)。
- 原理: 在你的代码
git commit之前,自动对需要提交的暂存区文件执行格式化,如果格式化失败,提交会被阻止。 - 前端示例:
npx husky-init && npm install npx husky add .husky/pre-commit "npx lint-staged"
在
package.json中配置lint-staged:"lint-staged": { "*.{js,ts,jsx,tsx,css,json,md}": ["prettier --write"] }
C. CI/CD 流水线(最后防线)
在 GitHub Actions / GitLab CI / Jenkins 中加入格式化检查步骤。
- 示例(CI 检查):
npx prettier --check "src/**/*.js"(如果格式不对,CI 任务会失败并报错)。
从0到1的实操步骤
- 创建
.editorconfig(放在项目根目录,解决基础缩进/换行问题)。 - 安装对应的专业格式化工具 (如
npm install --save-dev prettier)。 - 创建工具配置文件 (如
.prettierrc)。 - 配置编辑器自动保存格式化 (创建
.vscode/settings.json或 WebStorm 配置)。 - (可选)配置 Git Hooks 和 CI 检查 确保万无一失。
一句话总结: 把配置文件放在项目仓库里,然后让开发者在保存文件时自动格式化,这就是统一代码排版最优雅的方式。
标签: 统一排版