统一项目的代码格式规范对于多人协同开发,项目可读性与维护是十分重要的。前几天为实习公司的TypeScript
+Vue
项目配置了ESLint
+Prettier
+Husky
,规范代码风格。
1. ESLint: 检验代码语法和代码风格
eslint
: EsLint的核心代码@typescript-eslint/parser
:ESLint的解析器,用于解析typescript,从而检查和规范Typescript代码@typescript-eslint/eslint-plugin
:这是一个ESLint插件,包含了各类定义好的检测Typescript代码的规范
1 | 1. npm |
项目根目录下新建.eslintrc.js
文件,配置ESLint
规则:
1 | module.exports = { |
项目根目录下新建.eslintignore
文件,配置不需要ESlint检查的文件
1 | # don't ever lint node_modules |
2. Prettier: 检验代码风格
虽然已经配置了ESLint,但是ESLint只能检验js和ts文件的代码风格,不能格式化html和css代码,Prettier可以格式化以上所有文件的代码(但不会做语法检查),ESLint搭配Prettier使用效果会更好。
prettier
:prettier插件的核心代码eslint-config-prettier
:解决ESLint中的样式规范和prettier中样式规范的冲突,以prettier的样式规范为准,使ESLint中的样式规范自动失效eslint-plugin-prettier
:将prettier作为ESLint规范来使用
1 | 1. npm |
项目根目录下新建.prettierrc.js
文件,配置Prettier
规则
1 | module.exports = { |
更改.eslintrc.js
文件
1 | module.exports = { |
3. 为Vue文件配置ESLint
需要使用Vue官方提供的eslint-plugin-vue
包来对vue文件进行lint操作
1 | 1. npm |
更改.eslintrc.js
文件
注意:若eslint集成了eslint-plugin-vue去校验vue代码,由于eslint-plugin-vue插件也使用parse配置项(vue-eslint-parser),因此集成typescript需要把这个值配置到parserOptions
1 | module.exports = { |
4. 配置Husky+lint-staged
使用Husky
+lint-staged
可实现在git commit
提交代码时,执行ESLint
检验与格式化处理
husky
可用于在执行git命令操作时自定义命令,比如在代码被commit
到本地仓库前,可以让我们定义一些预检查和格式化等工作,其实现涉及到Git Hooks的原理,lint-staged
库是一个可对处于git暂存区文件(被git add
的文件)进行自定义逻辑的库
1 | 1. npm |
package.json
文件中添加配置项
1 | { |
这样在每次执行git commit
命令时,都会对暂存区中的文件执行自动格式化操作,如果格式化不成功(ESLint
的error
会格式化失败,warn
不会),则commit
失败,帮助规范代码。
5. 集成IDE
VSCode
需要安装插件:
1 | Prettier |
WebStorm
已集成以上插件
settings中搜索ESLint, 配置Automatic ESLint configuration, 若选中Run eslint —fix on save,则每次保存文件时,会自动使用ESLint格式化代码
settings中搜索Prettier,配置Prettier packages目录
- 在
.eslintrc.js
文件上右键→Apply ESLint Code Style Rules
- 在
.prettierrc.js
文件上右键→Apply Prettier Code Style Rules
- 使用Ctr+Shift+P可以使用Prettier格式化代码
- 在文件目录书中对某个文件右键→
Fix ESLint Problems
,使用ESLint格式化代码
6. 一些常用命令
1 | # prettier格式化所有ts文件 |
7. 配置.editorconfig
官网介绍:EditorConfig帮助开发人员在不同的编辑器和IDE之间定义和维护一致的编码样式。EditorConfig项目由用于定义编码样式的文件格式和一组文本编辑器插件组成,这些插件使编辑器能够读取文件格式并遵循定义的样式。EditorConfig文件易于阅读,并且与版本控制系统配合使用。
在项目根目录新建.editorconfig
文件,IDE(Webstorm内置editorconfig插件,VSCode需单独安装)借助editorconfig插件可以读取该文件并规范代码风格,如缩进字符数等等。下面是一份简单的.editorconfig
配置。
1 | [*.{js,jsx,ts,tsx,vue}] |
参考文章 📚
使用EsLint+Prettier规范TypeScript代码