在团队项目开发中,所有开发成员都需要保持统一的编码风格,无论是使用何种编辑器。因此每一个崭新的项目都需要提前配置好开发约束,例如ESLint、Prettier、git Hook等各种开发规范。
editorconfig
配置EditorConfig 帮助开发人员在不同的编辑器和 IDE 之间定义和维护一致的编码风格。有些编辑器会默认加载项目中的 editorConfig 配置(如webStorm),而有些编辑器需要安装 editorConfig 插件支持(如VS Code)。
当打开一个文件时,editorConfig 插件会在当前打开的目录下以及子目录中查找.editorconfig
配置文件,直到找到一个配置文件root=true
。
EditorConfig 的配置文件是从上往下读取,并且最近的 EditorConfig 配置文件会被最先读取,匹配 Editorconfig 配置文件中的配置项会按照顺序被应用在项目中,最近的配置优先被应用。如果.editorconfig
文件中没有进行配置,则编辑器会使用默认的设置。
** 匹配任意字符串
?匹配任意单个字符
[name] 匹配name中的任意一个单一字符
[!name]匹配不存在name中的任意一个单一字符
{s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔)
{num1..num2} 匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
复制代码
# https://editorconfig.org
root = true# 表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件
[*]# 表示所有文件都适用
indent_style = space# 设置缩进风格(tab是硬缩进,space为软缩进)
indent_size = 2 # 缩进宽度
end_of_line = cr # 设置换行符,值为lf、cr和crlf
charset = utf-8 # 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom
trim_trailing_whitespace = true# 设为true表示会去除换行行首的任意空白字符。
insert_final_newline = true# 设为true表示使文件以一个空白行结尾
[*.md] # 表示 md 文件适用以下规则
max_line_length = off
ESLint 的主要作用是做代码规范,例如定义的变量是否使用、是否允许console.log()
等,同时 ESLint 附带代码美化的功能,但是在绝大部分情况下,我们会使用 Prettier 来美化代码,而不是 ESLint 自己的代码美化风格。
使用 create-react-app 创建的 TypeScript React项目默认为已经为我们配置好了ESLint,在node_modules/eslint-config-react-app/index.js
中已经配置了绝大部分配置,我们需要做的工作就是在该配置的基础上来扩展该配置,或者也可以完全替换该配置。
在项目根目录中新建eslintrc.json<