首页/文章/eslint

项目中既然有了 prettier 文件,为什么还需要 .editorconfig

2024-10-11
19577 分钟
...

.editorconfig 文件用于设置代码格式化和文件风格的规则。这些规则可以让不同的开发者在使用不同的编辑器时,都能够保持一致的代码风格。.editorconfig 文件主要配置以下几类属性:缩进风格、缩进大小、换行符、字符编码、行末空白、文件末尾新行等。

下面是 .editorconfig 文件中可用的配置选项及其详细作用。

.editorconfig 文件详解

root

指定当前 .editorconfig 文件为项目的根配置文件。如果设置为 true,编辑器在找到这个文件后不会继续向上层目录查找其他 .editorconfig 文件。适用于项目有多个 .editorconfig 文件时,确保当前配置是最终的。

root = true
[pattern] - 文件匹配模式

用于定义规则适用的文件类型。支持通配符 *(匹配任意字符)、?(匹配单个字符)和 {}(匹配多种文件类型)。例如,[*.js] 匹配所有 JavaScript 文件,[*.{html,css}] 匹配 HTML 和 CSS 文件。

[*.js]
indent_style

定义缩进风格为 space(空格)或 tab(制表符)。确保代码在不同的编辑器中使用一致的缩进方式,有助于提高代码的可读性。

indent_style = space
indent_size

设置缩进的大小,通常为正整数。如果设置为 tab,表示缩进的大小取决于 tab_width。常见的缩进大小有 2 或 4 个空格。

indent_size = 4
tab_width

定义制表符的显示宽度,影响 tab 作为缩进时的字符数。通常与 indent_size 配合使用,确保缩进的显示效果一致。

tab_width = 4
end_of_line

指定文件的换行符格式。lf 表示换行符为 Line Feed (\n),crlf 表示 Carriage Return and Line Feed (\r\n),cr 表示 Carriage Return (\r)(不常用)。在跨平台开发中,统一换行符可以减少版本控制冲突。

end_of_line = lf
charset

定义文件的字符编码。常见的编码方式有 utf-8utf-16latin1。通常建议使用 utf-8,因为它支持多种语言字符并在各个平台上兼容性良好。

charset = utf-8
trim_trailing_whitespace

设置是否自动删除行末的多余空白字符。有助于保持代码整洁,避免版本控制中出现无意义的更改。

trim_trailing_whitespace = true
insert_final_newline

决定是否在文件末尾添加一个新行。许多编译器和工具链要求文件末尾有一个换行符,因此这是一个良好的编码习惯。

insert_final_newline = true
max_line_length

设置每行的最大长度,以确保代码在较窄的视口中也能保持可读性。如果设置为 off,则不对行的长度进行限制。

max_line_length = 80
unset

用于取消之前设置的某个属性,使其恢复为默认值。可以在特定文件类型的规则中使用 unset 覆盖全局配置。

indent_size = unset

下面是一个完整的 .editorconfig 文件示例,展示了对不同文件类型的具体配置。

# 当前目录为配置的根目录
root = true

# 通用设置适用于所有文件
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# 针对 Markdown 文件的特殊设置
[*.md]
trim_trailing_whitespace = false
max_line_length = off

# Makefile 文件使用 tab 缩进
[Makefile]
indent_style = tab

# 针对 JavaScript 文件的缩进大小设置为 2
[*.js]
indent_size = 2

这个 .editorconfig 文件示例展示了如何为不同类型的文件设置统一的代码风格和格式,确保团队成员在使用不同编辑器时仍然可以保持一致的代码风格。

.editorconfig 补充了 Prettier 的哪些功能?

  1. 基本的文件格式规范(非代码文件);.editorconfig 适用于所有文件类型(如配置文件、Markdown、Makefile 等),提供基础的缩进、字符编码和换行规则,而 Prettier 主要专注于代码文件。

  2. 字符编码和换行符管理;.editorconfig 可统一设置字符编码和换行符风格(如 LF 或 CRLF),而 Prettier 不处理这些低级别的格式问题。

  3. 跨编辑器的统一支持:.editorconfig 支持大多数编辑器和 IDE,即使不开启 Prettier,编辑器仍能保持一致的基本文件格式。

  4. 支持非编程语言的文件格式;.editorconfig 提供文档文件的基础格式化规则,填补了 Prettier 对纯文本文件支持的不足。

有了 Prettier,为什么还需要 .editorconfig

.editorconfig 和 Prettier 各自的侧重点不同,两者可以互为补充,满足不同场景的需求。.editorconfig 更侧重于基础文件规则的设置,比如缩进风格、字符编码、行尾空白处理等,适用于所有文件类型,不限于编程语言。这些基础规范可以确保即使在没有启用 Prettier 的情况下,团队中的开发人员在不同的编辑器中都能保持一致的文件风格。而 Prettier 更侧重于代码格式的自动化排版,可以处理代码的空行位置、括号样式等更高层次的代码格式化问题。因此,两者结合使用可以确保项目的文件格式规范和代码风格的一致性。

跨平台开发时,不同的操作系统(如 Windows、macOS、Linux)默认的换行符格式不同,.editorconfig 提供了一种简单的方式来统一项目中所有文件的换行符风格,避免因为系统差异导致的版本控制冲突。虽然 Prettier 可以处理代码文件的格式化,但对于某些特定的文件类型(如配置文件、文档等),.editorconfig 提供了更细粒度的控制,能够根据不同文件的需求灵活地设置特定的规则,这在某些项目中非常实用。

此外,并非所有项目都会使用 Prettier,尤其是某些遗留项目或不需要自动化格式化的项目,而 .editorconfig 是一种更加通用的配置方式,兼容几乎所有主流的编辑器和 IDE。这使得 .editorconfig 能够在更广泛的开发工具中得到支持,即使不开启 Prettier,也能保持文件的基本格式一致性,因此在团队协作中是非常有价值的。

总结

.editorconfig 提供文件级别的基础规范控制,适用于所有文件类型;而 Prettier 是代码自动格式化工具,专注于代码风格优化。两者结合使用,确保文件风格和代码格式的全面一致性。

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
eslint2024-10-11
ESLint 正式支持 JSON 和 Markdown
ESLint 团队近日宣布,ESLint 现已支持对 JSON 和 Markdown 文件进行代码检查。这标志着 ESLint 向提供语言无关的源代码代码检查平台迈出了重要的一步。 背景 早在七月份,ESLint 团队就发布了未来发展计划,提到将 ESLint 转型为更通用的 Linter,能够支持多种编程语言。经过几个月的努力,团队成功地提取了与 JavaScript 特定相关的核心功能,使 ESLint 现在能够对 JSON 和 M...
学习
eslint2024-09-14
eslint9+vite+vue3+prettier配置
eslint9+vite+vue3+prettier配置 今年更新eslint9之后,新建项目不再像之前那样的配置方式了,被整吐血的作者在尝试3小时之后,终于整合了eslint9+vite+vue3+prettier,完美运行,有问题可以评论,一起进步 安装插件 package.json截图 新建 ,内容如下 新建 ,内容如下 新建 ,内容如下 中的配置 最后再配置 好了,开始你的eslint9之路吧
学习
eslint2024-09-11
eslint 9.x 升级或使用指南,eslint.config.js 配置,包含 react、typescript、prettier 等常用配置升级迁移
不再支持 和 版本 名词解释: : 是 的长期支持版本(维护和安全更新),通常每隔两年发布一次,特点是稳定和可靠性,建议生产使用。 非 ( ):是 的最新开发版本,通常每隔几个月发布一次,包含最新的功能和实验特性,缺乏稳定性。 配置文件取代 配置 新版 已经取代了 配置文件,如果你是 可以将你的环境变量 设为 ,但 中已经明确表示在下一阶段 中会移除对旧配置文件的兼容。 中支持 和 两种配置文件格式,推荐使用 。 新 Rule: 规则用...
学习
eslint2024-08-19
最全的 ESLint 配置流程来了
在前端开发中,代码质量和一致性至关重要。 「ESLint」 是帮助你提升代码质量的关键工具,尤其是在使用 「Vue」 和 「React」 进行开发时,合理配置和使用 ESLint 能够大幅提升开发效率和代码质量。但是,你知道如何在 「VSCode」 中无缝集成 ESLint,并让它自动为你提示和修复代码问题吗?如果还不清楚,赶紧学习,否则你可能已经落后了! 目前您可能还用不到这篇文章,不过可以先收藏起来。希望将来它能为您提供所需的帮助!...
学习
eslint2024-08-09
还在复制粘贴 eslint 配置?封装个预置函数,彻底解放你的双手
阅读本文您将收获: 1. 了解 预置函数的设计思路。 2. 了解 预置函数实现的具体过程。 3. 了解 预置函数在实际项目中的应用。 预置函数基于 ,若版本在此之前,请查看 设计比较简单, 配置文件 中,直接调用预置函数 并导出其返回结果。 函数允许针对特定项目场景,传入自定义的配置规则,覆盖预置规则。 函数中预置了一系列 规则配置,主要分为两部分 默认启用配置 和 按需启用配置 。 默认启用配置 包括大多数项目都需要的基础配置,诸如...
学习
AI2026-09-01
Deep Agents 01:何为 Agent Harness,以及如何开始
1、本篇任务:完成一份多步骤、带证据的技术调研 普通客服 Agent 的问题短、工具少、输出即时。技术调研或编码任务会持续很久,产生计划、搜索结果、文件和中间结论。Deep Agents 在 LangChain/LangGraph 之上预装规划、虚拟文件系统、上下文压缩和子 Agent,适合这类开放任务。 本课让 Agent 比较两种向量数据库,并交付一份可验证报告。 2、什么时候需要 Deep Agent 满足以下两项以上再考虑:任务...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录