IDE

代码风格统一

Posted by Wh0ami-hy on February 26, 2025

1. 概念

代码质量和风格检查工具(Linter)

检测代码中的潜在错误(如未使用的变量、语法问题),并强制执行编码风格规则(如缩进、分号、命名规范等)。

关注代码的逻辑正确性风格一致性,适用于 JavaScript、TypeScript 等语言。

可以报错、警告,并通过 –fix 自动修复部分问题。

常用的如:ESLint、Stylelint

编辑器行为配置文件

统一不同编辑器或 IDE 的基本格式设置(如缩进大小、换行符、字符编码等),确保代码在不同开发环境下外观一致。

关注代码的物理格式一致性,跨语言通用,不涉及代码逻辑或复杂风格。

不报错,只是告诉编辑器如何格式化代码。

常用的如:EditorConfig

代码格式化工具

Prettier

总结:代码风格检查工具通常是按一定的格式要求自定义配置检查项,只会检测代码不会改变代码的缩进等格式。而代码格式化通常是按一定的格式要求自定义配置格式化项,会改变代码的缩进等格式。所以代码风格检测工具的配置要求应和代码格式化工具的配置一致。如代码缩进,代码风格检测是按照4个空格的要求去检测,而格式化工具是按2个空格缩进的标准去实现代码的缩进,那么代码检测工具就会报错。

2. ESLint

ESLint 是一个可配置的 JavaScript 检查器。它可以帮助你发现并修复 JavaScript 代码中的问题。问题可以指潜在的运行时漏洞、未使用最佳实践、风格问题等

使用条件

需要安装并集成到项目中(如 npm install eslint)

配置文件:通常是 .eslintrc.json、.eslintrc.js 或 package.json 中的 eslintConfig 字段

需要手动运行(如 npx eslint .)或通过脚本、插件、CI 自动执行。也可以结合 Prettier 或 IDE 插件(如 VSCode 的 ESLint 扩展)实时提示和修复。

适用范围

主要针对 JavaScript/TypeScript,配合插件也可以支持其他语言(如 ESLint + Vue 插件)。

可以检查代码逻辑、语法和复杂的风格约定。

3. EditorConfig

使用条件

无需额外依赖,只需编辑器支持(VSCode不会读取.editorconfig,需要安装插件 EditorConfig for VS Code)

配置编辑器自动解析 .editorconfig 文件即可

适用范围

适用于所有文本文件(如 JS、CSS、HTML、Python 等),不局限于特定语言

仅处理基本的格式属性,无法检查代码逻辑或高级风格

# 表示这是根级配置文件
root = true

# 匹配所有文件
[*]
indent_style = space    # 缩进使用空格
indent_size = 4         # 缩进大小为4个空格
end_of_line = lf        # 换行符使用Unix风格(\n)
charset = utf-8         # 字符编码为UTF-8
trim_trailing_whitespace = true  # 删除行尾多余空格

# 针对特定文件类型覆盖规则
[*.py]
indent_size = 2         # Python文件缩进改为2个空格
[*.js]
indent_size = 2         # JavaScript文件缩进改为2个空格
[*.md]
trim_trailing_whitespace = false  # Markdown文件保留行尾空格

常见属性说明

  • indent_style: 缩进风格,可以是 space(空格)或 tab(制表符)。

  • indent_size: 缩进的字符数。

  • end_of_line: 换行符类型(lf 表示 Unix 风格,crlf 表示 Windows 风格)。

  • charset: 文件编码,如 utf-8等。

  • trim_trailing_whitespace: 是否删除行尾多余空格。

  • root: 是否为项目的根配置文件,设为 true 表示不再向上查找其他 .editorconfig 文件

4. 总结

优先级:ESLint > EditorConfig > IDE

方面 前端(Vue) 后端(Java)
缩进 2 空格(Vue 社区惯例) 4 空格(Java 社区惯例)
工具 ESLint、Stylelint、Prettier Checkstyle、Spotless
文件类型 .js、.vue、.css .java
检查重点 UI 一致性 + JS 逻辑 类结构 + 逻辑清晰性

本站总访问量