>[success] # EditorConfig -- 专注于统一编辑器编码风格配置 ~~~ 1.代码编译器本身维护一份配置比如「设定缩进使用 Tab 还是 Space」,「一个 Tab 占用多少列」, 「是否在文件末尾显示空行」等等 2.代码编辑器的配置信息独立维护不对外共享。使用不同编辑器打开同一份文件,如果编辑器配置不统一, 显示效果和输入内容很有可能不一致,单个编辑器独立操作只是存在隐患,在多编辑器或跨编辑器的情况下, 隐患就容易升级为问题,最终导致代码处于混杂状态 ~~~ >[info] ## EditorConfig 如何工作 ~~~ 1.在项目中共享 .editorconfig 文件,该文件可被 EditorConfig 解析,由 EditorConfig 告知编辑器覆盖默认配置。 2.一些编辑器内置支持 EditorConfig,比如 WebStorm、Github;而一些编辑器需要安装 EditorConfig 插件, 比如 VSCode、Sublime。对主流代码编辑器的高覆盖支撑 EditorConfig 成为被广泛应用的解决方案 ~~~ ~~~ indent_style 设置缩进为 tab 或 space tab_width 设置 tab 所占列数。默认是indent_size indent_size 设置缩进所占列数,如果 indent_style 为 tab,则以 tab_width 值作为缩进宽度 end_of_line 设置换行符,值为lf、cr和crlf charset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom trim_trailing_whitespace 设为 true 表示会去除行尾的空白字符 insert_final_newline 设为 true 表示使文件以一个空白行结尾 root    表示是最顶层的配置文件,设为 true 时,停止向上查找 ~~~ [editorconfig](https://editorconfig.org/) >[danger] ##### 关于配置 -- .editorconfig 文件 ~~~ python # https://editorconfig.org # 已经是顶层配置文件,不必继续向上搜索 root = true [*] # 编码字符集 charset = utf-8 # 缩进风格是空格 indent_style = space # 一个缩进占用两个空格,因没有设置tab_with,一个Tab占用2列 indent_size = 2 # 换行符 lf end_of_line = lf # 文件以一个空白行结尾 insert_final_newline = true # 去除行首的任意空白字符 trim_trailing_whitespace = true [*.md] # 表示仅 md 文件适用以下规则 insert_final_newline = false trim_trailing_whitespace = false ~~~ >[danger] ##### 解决问题 ~~~ 1.EditorConfig 解决了编辑器配置层面的编码风格一致性问题。 ~~~ >[danger] ##### Prettier 还需要 EditorConfig ~~~ 1.EditorConfig 作用于预览和输入阶段,Prettier 在保存和提交阶段重新组织代码, Prettier 会成为代码形态的最终决定者。 2. EditorConfig 覆盖所有类型的文件,可以采用 EditorConfig 管理相交属性,其他属性则由 Prettier 控制。 ~~~ >[info] ## 参考 [前端代码规范化:EditorConfig + Prettier + ESLint ](https://zhuanlan.zhihu.com/p/366141969)