lint-staged
lint-staged 相当于一个文件过滤器,每次提交时只检查本次提交的暂存区的文件,它不能格式化代码和校验文件, 需要自己配置一下,如:.eslintrc、.stylelintrc 等,然后在 package.json 中引入。
安装依赖:
bash
ni -D lint-staged
新建配置文件 .lintstagedrc.json 并写入如下内容:
json
{
"*.{css,scss}": "stylelint --fix",
"*": "prettier --ignore-unknown --write",
"*.{js,jsx,ts,tsx}": "eslint --fix"
}
或者
json
{
"src/**/*.tsx": [
"prettier --write",
"eslint --fix"
],
"src/**/*.scss": [
"prettier --write"
],
"src/**/*.mdx": [
"prettier --write"
],
"src/**/*.md": [
"prettier --write"
]
}
修改 packages.json:
text
"scripts": {
"ling-staged": "ling-staged",
}
运行 yarn lint-staged 将对 git 暂存区所有文件执行 .lintstagedrc 中配置的命令。
或者在 package.json 中添加 lint-staged 字段:
json
{
"lint-staged": {
"*.{css,scss}": "stylelint --fix",
"*": "prettier --ignore-unknown --write",
"*.{js,jsx,ts,tsx}": "eslint --fix"
}
}
package.json中的配置
text
"lint": "npm run lint:es && npm run lint:css",
"lint:css": "stylelint \"{src,test}/**/*.{css,less}\"",
"lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"",
text
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"lint-staged": {
"*.{md,json}": [
"prettier --write --no-error-on-unmatched-pattern"
],
"*.{css,less}": [
"stylelint --fix",
"prettier --write"
],
"*.{js,jsx}": [
"eslint --fix",
"prettier --write"
],
"*.{ts,tsx}": [
"eslint --fix",
"prettier --parser=typescript --write"
]
},
text
"eslint": "eslint packages/perfect-design/src --cache --fix --quiet --ext .js,.jsx,.ts,.tsx",
"pre-commit": "pretty-quick --staged && pnpm eslint && pnpm stylelint",
"stylelint": "stylelint {packages,.dumi/theme}/**/*.less --fix",
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,less,md,json}": [
"prettier --write"
],
"*.ts?(x)": [
"prettier --parser=typescript --write"
]
},
pretty-quick
作者:Long Mo
字数统计:322 字
阅读时长:1 分钟
Contributors
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs !