699 字
3 分钟
lint
lint 是什么?
- lint 是一种工具的名称,它用来标记代码中,某些可疑的,不具结构性(可能造成 bug)的语句
- 是一种静态程序分析工具,最早适用于 C 语言,后来成为通用术语,可用于描述在任何一种编程语言中,用来标记代码中有疑义语句的工具
主流的三款 lint 工具: JSLint、JSHint、ESLint。其中 ESLint 使用 esprima 将源代码解析成 AST,然后你就可以使用任意规则来检测 AST 是否符合预期,这也是 ESLint 高可扩展性的原因
lint 工具的优势
- 避免低级 bug、找出可能发生的语法错误
- 提示删掉多余代码
- 确保代码遵循最佳实践
- 统一团队的代码风格
代码提交规范自动化检测
husky:一个为 git 增加 hook 的工具
安装后,它会自动在仓库中的 .git/ 目录下增加相应的钩子,比如 pre-commit 钩子就会在你执行git commit
的触发。
我们可以在 pre-commit 中实现一些比如 lint 检查、单元测试、代码美化等操作。
lint-staged:一个仅仅过滤出 Git 代码暂存区文件(被 git add 的文件)的工具
这个很实用,因为如果对整个项目的代码做一个检查,可能耗时很长,如果是老项目,要对之前的代码做一个代码规范检查并修改的话,可能导致项目改动很大。所以这个 lint-staged,对团队项目和开源项目来说,是一个很好的工具,它是对个人要提交的代码的一个规范和约束。
lint 的作用:
- 规范代码提交:
git commmit -m ‘xxx’
时,用来检查 xxx 是否满足规范格式的工具。 - pre-commit hook 中自动检测并修复部分代码规范(全量检测),搭配 lint-staged 使用可实现增量检测(仅检测缓存区)。
使用 husky + lint-staged 实现 git commit 代码检测和格式化
安装步骤:
安装 husky 和 lint-staged:
npm install husky lint-staged --dev
安装 pre-commit:
npm install pre-commit --save-dev
初始化并配置 pre-commit 文件
npx husky-init
没有.husky 的文件时需要执行这一句:
npx husky add .husky/pre-commit "yarn run precommit"
安装完成后项目目录新增了.husky 文件夹
去 package.json 里面加点内容:
{
...
"script": {
...
"precommit": "lint-staged",
"prepare": "husky install"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,tsx,ts}": [
"prettier --write",
"eslint --fix"
]
},
...
}
NOTE如果出现 The ‘.husky/pre-commit’ hook was ignored because it’s not set as executable 报错,执行命令
chmod ug+x .husky/*
即可解决 commitlint 是用来保障项目 commit message 的规范和格式化
其它:
- 前端 Husky+lint-staged+eslint 实现自动化工程增量提交检测:https://www.jianshu.com/p/15a6cff4087e
- .eslintrc.*文件的配置项介绍:https://juejin.cn/post/7136458949322080292#heading-5
- VSCode 插件与 npm 包的区别和使用:https://www.panyanbin.com/article/47d1c4a4.html