Repolode
lint-staged

lint-staged/lint-staged

在提交前只对 git 暂存区的文件运行格式化和代码检查工具,防止问题代码进入仓库。

Star
14,757
Fork
479
未关闭 Issue
2
最近提交
7天前

这是什么?

lint-staged 会针对当前 git 暂存区中的文件运行任意 shell 命令,例如 Prettier、ESLint 或 Stylelint。在整个项目上运行这些工具通常较慢,还可能报出无关的问题,因此 lint-staged 只检查本次提交真正会包含的文件。

任务通过 JSON 对象配置(可写在 package.json、.lintstagedrc 文件或 JS/TS 配置中),把 glob 模式映射到对应命令,匹配到的文件会作为参数传入。命令可以并发或顺序执行,也可以用 JavaScript 函数实现自定义逻辑。任务产生的修改(如自动修复)会被重新加入本次提交。

默认情况下,lint-staged 在运行任务前会创建 git stash 作为备份,任务失败时回滚修改。它通常通过 Husky 等 pre-commit 钩子接入,并支持为 monorepo 中的每个包配置独立的配置文件。

核心功能

  • 01对通过 glob 模式匹配的暂存文件运行任意 shell 命令。
  • 02自动将 Prettier、ESLint --fix 等任务产生的修复加入提交。
  • 03提交前用 git stash 备份工作区状态,失败时恢复。
  • 04支持串行、并行以及有序的任务执行。
  • 05可在 package.json、点文件或 JS/TS 配置文件中配置。
  • 06支持在 monorepo 中按目录使用独立配置。

适用场景

  • 在每次提交前对 JavaScript 和 TypeScript 文件运行 Prettier 和 ESLint。
  • 仅在 CSS 或 SCSS 文件变更时使用 Stylelint 检查。
  • 通过自定义任务阻止提交特定类型的文件,例如 PDF。
  • 为 monorepo 中的不同包应用各自的代码检查配置。

快速上手

  1. 1

    将 lint-staged 安装为开发依赖

    npm install --save-dev lint-staged
  2. 2

    设置 pre-commit Git 钩子以运行 lint-staged(Husky 是常用选择)

  3. 3

    在 package.json 或配置文件中配置 lint-staged,例如对 JS 文件运行 ESLint

  4. 4

    暂存部分文件并运行 git commit 以触发检查

    git commit

使用前须知

  • 需要额外配置:需要 Git 钩子管理工具以及 ESLint 或 Prettier 等已配置的工具。
  • 它会执行影响工作区的 Git 操作,默认会创建备份 stash。

收录于专题

标签

常见问题

lint-staged 是什么?
在提交前只对 git 暂存区的文件运行格式化和代码检查工具,防止问题代码进入仓库。 lint-staged 会针对当前 git 暂存区中的文件运行任意 shell 命令,例如 Prettier、ESLint 或 Stylelint。在整个项目上运行这些工具通常较慢,还可能报出无关的问题,因此 lint-staged 只检查本次提交真正会包含的文件。
lint-staged 可以免费使用吗?用的什么许可证?
lint-staged 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
lint-staged 还在维护吗?
活跃维护中。lint-staged 最近一次提交是在 2026年10月31日。
lint-staged 适合用来做什么?
在每次提交前对 JavaScript 和 TypeScript 文件运行 Prettier 和 ESLint。 仅在 CSS 或 SCSS 文件变更时使用 Stylelint 检查。 通过自定义任务阻止提交特定类型的文件,例如 PDF。 为 monorepo 中的不同包应用各自的代码检查配置。
lint-staged 怎么安装和运行?
将 lint-staged 安装为开发依赖: npm install --save-dev lint-staged 设置 pre-commit Git 钩子以运行 lint-staged(Husky 是常用选择) 在 package.json 或配置文件中配置 lint-staged,例如对 JS 文件运行 ESLint 暂存部分文件并运行 git commit 以触发检查: git commit
在哪里获取 lint-staged?
源代码和安装说明在 GitHub 上:https://github.com/lint-staged/lint-staged

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目