Code Review 时如何统一团队的代码风格? 博主智玲 提问于 2026-02-28 09:38:17 阅读 27 前端 我们团队最近开始做 Code Review,但每个人写的代码风格都不一样,比如缩进、分号、引号这些,看得头大。 试过用 ESLint,但有人用 Prettier,配置还经常冲突,到底该以谁为准?有没有一套能自动格式化又不打架的方案? 比如下面这种写法,有人喜欢加分号,有人不加: const name = 'Alice'; 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Newb.会娟 Lv1 这问题太典型了,ESLint 和 Prettier 打架简直是每个团队的必经之路。 说下核心原则:ESLint 只管代码质量,Prettier 只管代码格式,各司其职别越界。 直接给你一套能跑的配置,复制过去试试。 先装依赖: npm install -D eslint prettier eslint-config-prettier eslint-plugin-prettier 然后是 .eslintrc.js,关键是把 prettier 放在 extends 最后: module.exports = { extends: [ 'eslint:recommended', 'plugin:prettier/recommended' // 这个必须放最后,会关掉所有和 prettier 冲突的规则 ], rules: { // 只保留代码质量相关的规则,格式化的别写这里 'no-unused-vars': 'warn', 'no-console': 'off' } } .prettierrc 配置: { "semi": true, "singleQuote": true, "tabWidth": 2, "trailingComma": "none", "printWidth": 100 } 光这样还不够,肯定有人提交前忘了格式化。上 husky + lint-staged 自动搞定: npm install -D husky lint-staged npx husky install npx husky add .husky/pre-commit "npx lint-staged" package.json 里加这段: { "lint-staged": { "*.{js,jsx,ts,tsx}": [ "prettier --write", "eslint --fix" ] } } 这样每次 git commit 的时候会自动格式化,不合规的根本提交不上去。 关于分号加不加的问题,团队投票定一个就行,写进 .prettierrc 就完事了,别在 CR 里争论这种事,浪费时间。我们团队选了加分号,因为老项目多,改起来成本太大。 对了,VSCode 用户记得装 Prettier 插件,再在项目根目录建个 .vscode/settings.json: { "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode" } 这样保存时自动格式化,想写不规范都难。 回复 点赞 2026-03-02 17:15 风云 Lv1 我之前也遇到过这破事,ESLint 和 Prettier 打架是经典问题了。 解决方案很简单:Prettier 管格式化,ESLint 管代码质量,装个 eslint-config-prettier 把 ESLint 里跟格式相关的规则全关掉,别让两边抢活干。然后配上 husky 和 lint-staged,提交代码时自动格式化,谁都不用操心。 // package.json { "scripts": { "lint": "eslint src --fix", "format": "prettier --write src/**/*.{js,jsx,ts,tsx}" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "prettier --write", "eslint --fix" ] } } // .eslintrc.js module.exports = { extends: [ 'eslint:recommended', 'plugin:prettier/recommended' // 这个一定要放最后 ] } // .prettierrc { "semi": true, "singleQuote": true, "tabWidth": 2, "trailingComma": "es5" } 团队里谁爱加分号谁不爱加都闭嘴,prettierrc 里定死就行,git commit 时自动统一,argue 的时间都能多写几行代码了。 回复 点赞 4 2026-02-28 22:03 加载更多 相关推荐 1 回答 11 浏览 代码 Review 时怎么判断 CSS 写得是否规范? 最近在团队做 Code Review,看到同事写的这段 CSS 有点拿不准要不要提意见,感觉写法不太规范但又说不上来具体问题在哪: .btn { background: #007bff; color:... Mc.艺嘉 前端 2026-03-05 15:28:19 1 回答 17 浏览 VSCode插件中如何正确注册HTML语言的CompletionItemProvider? 我在写一个VSCode扩展,想给HTML文件添加自定义代码补全,但注册后完全没反应。是不是provider的triggerCharacters或者documentSelector写错了? 我试过用vs... 令狐焕焕 工具 2026-03-01 14:33:18 1 回答 95 浏览 CodeEditor组件中如何监听代码内容变化? 我在用一个第三方的 CodeEditor 组件(类似 Monaco 或 CodeMirror 封装的),想在用户输入时实时获取编辑器里的代码内容,但文档看得有点懵。 试过给组件加 onChange 事... Des.佳宜 组件 2026-02-25 01:57:19 1 回答 33 浏览 VSCode Live Share共享代码时,对方无法看到实时更新怎么办? 我在用VSCode Live Share和队友协作修改一个HTML页面,但对方连接后只能看到初始代码,当我修改像按钮文本这样的内容时,他们端完全看不到实时变化,这正常吗? 我试过重启Live Shar... Dev · 景景 工具 2026-02-17 22:14:25 2 回答 54 浏览 VSCode调试时设置断点后代码不暂停怎么办? 最近在用VSCode调试JavaScript代码,设置了断点但运行时完全不暂停。试过重启VSCode和电脑都不行,是不是哪里配置错了? 我的launch.json配置是这样的: { "version"... ___丽丽 前端 2026-02-10 14:54:52 1 回答 11 浏览 VSCode Remote连接后React组件不热更新怎么办? 我在用 VSCode Remote-SSH 连接到远程服务器开发 React 项目,本地修改代码后页面完全不热更新,手动刷新也不生效,但终端里 Webpack 显示编译成功了。这是怎么回事? 我试过重... 设计师明硕 工具 2026-03-02 20:57:25 1 回答 13 浏览 VSCode里Git提交时怎么忽略某个HTML文件? 我在用VSCode开发一个静态页面,每次改完代码Git都会提示我有个 index.html 被修改了,但其实这个文件是构建生成的,我不想把它提交到仓库里。我已经在 .gitignore 里加了 ind... 宇文淑萍 工具 2026-02-28 21:20:25 2 回答 29 浏览 React Native Codegen生成后模块找不到怎么办? 我在给React Native项目添加新原生模块时,按照文档用codegen生成了桥梁代码,但运行时提示"Cannot find module './generated/Specs/MyModule'... 夏侯东景 移动 2026-02-18 07:24:40 1 回答 340 浏览 VSCode调试React项目时断点无法命中怎么办? 用React+Vite新建的项目,配置好VSCode调试后,代码里的断点就是没反应。已经检查过launch.json里路径没问题,但调试时控制台只显示"正在调试",断点都是灰色的。 我的组件代码是这样... 子豪酱~ 工具 2026-02-04 19:47:34 2 回答 62 浏览 VSCode多光标编辑时如何同时修改不同位置的相同变量名? 在写React组件时遇到了个问题,我需要把三个不同位置的userName变量名改成user.name,用Alt键点了三个位置添加光标,结果修改后只有第一个位置变了,其他两个没反应,这是为啥啊? 试过按... 极客金利 工具 2026-01-29 19:56:48
说下核心原则:ESLint 只管代码质量,Prettier 只管代码格式,各司其职别越界。
直接给你一套能跑的配置,复制过去试试。
先装依赖:
然后是
.eslintrc.js,关键是把 prettier 放在 extends 最后:.prettierrc配置:光这样还不够,肯定有人提交前忘了格式化。上 husky + lint-staged 自动搞定:
package.json里加这段:这样每次 git commit 的时候会自动格式化,不合规的根本提交不上去。
关于分号加不加的问题,团队投票定一个就行,写进
.prettierrc就完事了,别在 CR 里争论这种事,浪费时间。我们团队选了加分号,因为老项目多,改起来成本太大。对了,VSCode 用户记得装 Prettier 插件,再在项目根目录建个
.vscode/settings.json:这样保存时自动格式化,想写不规范都难。
解决方案很简单:Prettier 管格式化,ESLint 管代码质量,装个
eslint-config-prettier把 ESLint 里跟格式相关的规则全关掉,别让两边抢活干。然后配上 husky 和 lint-staged,提交代码时自动格式化,谁都不用操心。团队里谁爱加分号谁不爱加都闭嘴,prettierrc 里定死就行,git commit 时自动统一,argue 的时间都能多写几行代码了。