gpt4 book ai didi

eslint - 在暂存文件上运行 eslint "ONLY"

转载 作者:行者123 更新时间:2023-12-03 13:40:27 25 4
gpt4 key购买 nike

我正在尝试使用预提交 Hook 在提交发生之前检测 eslint 错误。我正在使用 husky 和 ​​lint-staged。但它对 src 中的所有文件运行 lint 命令,而不是仅对暂存文件运行。这是我的 package.json 文件。

"scripts": {
"test:ci": "cross-env CI=true react-scripts test --bail --passWithNoTests",
"lint": "eslint src/**/*.{js,jsx}",
"lint:fix": "eslint . --fix",
"precommit": "npm run lint && npm run test:ci"
}
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.js": [
"npm run precommit"
],
"*.jsx": [
"npm run precommit"
]
}

有什么办法让它只适用于暂存文件而不适用于目录中存在的其他文件?

最佳答案

据此lint-staged example ,我实现了,为了只检查暂存文件(大约需要 5 秒),除非有超过 5 个暂存文件,它会检查所有 repo(可能需要超过 1 分钟):

  • 升级lint-staged打包到最新版本
  • 添加 .lintstagedrc.js文件在你的 repo 的根目录。它可能包含如下内容:

  • module.exports = {
    '**/*.js?(x)': (filenames) =>
    filenames.length > 5 ? 'eslint --ext .js,.jsx . --ignore-path .gitignore --fix .' : `eslint ${filenames.join(' ')} --fix`,
    "*.json": [
    "prettier --write"
    ]
    }
  • package.json 中删除旧的“lint-staged”命令文件
  • 关于eslint - 在暂存文件上运行 eslint "ONLY",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62425452/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com