前端工程化 词条目录
前端Wiki/词条/lint-staged

lint-staged

定义只对 Git 暂存区文件执行 lint/格式化任务的工具,让提交前检查快到无感

全量 lint 一个中大型项目可能要一两分钟,但一次提交往往只改了几个文件。lint-staged 利用 git diff --staged 拿到本次真正变动的文件清单,只把它们喂给 eslint/prettier/stylelint,再配合 husky 的 pre-commit 钩子,提交前校验从「拖累团队」变成「毫秒级无感」。

它还能在 lint 通过后自动把格式化结果 git add 回暂存区,避免「lint 改了代码但提交的是旧版」的尴尬。配置写在 package.json 的 lint-staged 字段或单独文件,按扩展名映射命令,例如 *.js 跑 eslint --fix。简单但它是代码规范落地链路里最关键的一环。

JavaScript
// package.json —— lint-staged 配置
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --fix",           // 先自动修复
      "prettier --write"        // 再统一格式
    ],
    "*.{css,scss,json,md}": "prettier --write",
    "*.{ts,tsx}": "tsc --noEmit"  // 顺带做一次类型检查
  },
  "scripts": { "prepare": "husky" }
}

// .husky/pre-commit 只需一行:
// npx lint-staged
⚠ 常见误区
🔗 相关词条规范化与自动化代码审查与 Git Hooks
← 返回来源章节规范化与自动化