Prettier、 ESLint 、stylelint、husky 、lint-staged基本知识
Prettier : 代码格式化例如超过设置的行代码长度换行处理,结尾不使用分号,统一使用单引号
prettier
就是把你的代码转化成一个抽象语法树AST
然后根据AST
将代码按照prettier
的风格输出即可。可以用prettier
官方提供的检测网站来看prettier
的转化过程。
Eslint: 代码质量的校验。例如使用了未定义的变量、三等号、api语法错误、修改const变量等等
- 命令
1
2检查 eslint src/**/*.{js,ts,tsx}
自动修复 eslint --fix src/**/*.{js,ts,tsx} - eslint-config-standard配置包扩展社区中流行的最佳实践的风格指南。
eslint-config-prettier
关闭 Eslint 中与 Prettier 冲突的选项,只会关闭冲突的选项,不会启用Prettier的规则eslint-plugin-prettier
先使用Prettier对代码进行格式化,再并对不一致的地方进行标记
stylelint: stylelint 是一个强大和现代的 CSS 审查工具,有助于开发者推行统一的代码规范,避免样式错误stylelint拥有超过150条的规则,包括捕捉错误、最佳实践、控制可以使用的语言特性和强制代码风格规范。
。stylelint 由 PostCSS 提供技术支持,所以它也可以理解 PostCSS 解析的语法,比如 SCSS。
命令
1 | stylelint --fix src/**/*.{html,css,scss} |
插件:
stylelint-config-prettier
:禁用所有与格式相关的 Stylelint 规则,解决 prettier 与 stylelint 规则冲突,确保将其放在 extends 队列最后,这样它将覆盖其他配置。stylelint-config-standard
:官网提供的 css 标准stylelint-prettier
:基于 prettier 代码风格的 stylelint 规则- stylelint-config-recess-order: 属性排列顺序
EditorConfig: 生成 .editorconfig 配置文件,规定当前编辑器的一些设定。抹平编辑器的差异。格式化的生效策略:自定义配置>editorconfig>编辑器的setting
husky : git 操作的钩子。
lint-staged : 只对 git 中staged(变更)的文件进行代码格式的校验和代码质量的校验操作。而不是项目中所有的文件。
1 | //报错 在lint-staged命令中移除git add 命令本身自带git add |
ESLint和Prettier区别
1、ESLint 主要包含代码格式的校验,代码质量的校验,ESLint 在出--fix
自动修复功能前只会提示一些warning和error,改起来非常复杂。
2、Prettier 只是格式化代码 。
*tips:如果你觉得的eslint自带的修复功能就足够的话可以不加Prettier *
ESLint+Prettier+ husky + stylelint +lint-staged 提高前端项目质量
通过pre-commit阶段增量校验的模式,尽量避免对老旧代码的影响;稳健地逐步完善老项目的强制校验和格式化提高前端项目质量、统一项目代码风格
1 | yarn add husky lint-staged prettier eslint-plugin-prettier eslint-config-prettier stylelint stylelint-config-prettier stylelint-config-standard stylelint-prettier -D |
我在项目中的配置可能不是很完美,有问题可以提出来
.eslintrc
1 | { |
.stylelintrc
1 | { |
.editorconfig
1 | # http://editorconfig.org |
package.json
1 | { |
提交commit之后
vscode插件推荐。
EditorConfig:生成 .editorconfig 配置文件,规定当前编辑器的一些设定。
ESLint:代码质量检查。
styleLint:css代码质量检查。
Prettier:格式化代码
Code Spell Checker:单词拼写检查。
Indent-Rainbow:彩虹缩进,缩进不规范时会标红提示。
vscode 的 setting.json
1 | { |