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 逻辑 | 类结构 + 逻辑清晰性 |