初始化基于 lint-staged + simple-git-hooks + prettier 的 git 提交前代码格式化流程。用于在任何 Node.js 项目中快速搭建代码格式化和 git 钩子配置。
View on GitHubclaude-code-marketplace/common-tools/skills/init-prettier-git-hooks/SKILL.md
February 3, 2026
Select agents to install to:
npx add-skill https://github.com/ruan-cat/monorepo/blob/main/claude-code-marketplace/common-tools/skills/init-prettier-git-hooks/SKILL.md -a claude-code --skill init-prettier-git-hooksInstallation paths:
.claude/skills/init-prettier-git-hooks/# 初始化 Prettier + Git Hooks 格式化流程
本技能用于在任何 Node.js 项目中初始化基于 `lint-staged` + `simple-git-hooks` + `prettier` 的 git 提交前代码格式化流程。
## 1. 必须安装的依赖(devDependencies)
执行以下命令安装所有必要的依赖:
```bash
pnpm add -D prettier @prettier/plugin-oxc prettier-plugin-lint-md lint-staged simple-git-hooks commitlint
```
依赖说明:
| 依赖名称 | 说明 |
| :-----------------------: | :---------------------------------: |
| `prettier` | 核心代码格式化工具 |
| `@prettier/plugin-oxc` | 使用 oxc 引擎解析 JS/TS,更快速 |
| `prettier-plugin-lint-md` | Markdown 文件格式化插件 |
| `lint-staged` | 只对 git 暂存区文件执行 lint/format |
| `simple-git-hooks` | 轻量级 git hooks 管理工具 |
| `commitlint` | git 提交信息规范校验 |
## 2. 必须创建/修改的配置文件
### 2.1. 创建 `prettier.config.mjs`
从模板复制:参见 [templates/prettier.config.mjs](./templates/prettier.config.mjs)
### 2.2. 创建 `lint-staged.config.js`
从模板复制:参见 [templates/lint-staged.config.js](./templates/lint-staged.config.js)
### 2.3. 创建 `simple-git-hooks.mjs`
从模板复制:参见 [templates/simple-git-hooks.mjs](./templates/simple-git-hooks.mjs)
### 2.4. 更新 `package.json`
需要在 `package.json` 中添加/修改以下内容:
**scripts 部分新增命令:**
```json
{
"scripts": {
"format": "prettier --experimental-cli --write .",
"prepare": "<原有的 prepare 命令> && simple-git-hooks"
}
}
```
说明:
| 命令 | 说明 |
| :-------: | :-----------------------------------: |
| `format` | 手动格式化整个项目的所有文件 |
| `prepare` | 在 npm install 后自动初始化 git hooks |
**注意:** 如果项目原本没有 `prepare` 命令,则直接设置为 `"prepare": "simple-git-hooks"`。
## 3. 初始化 Git Hooks
配置文件创建完成后,需要执行以下命令来初始化 git hooks:
```bash
# 如果 simple-git-hooks 的 postinstall 脚本被阻止,需要先批准
pnpm approve-builds simple-git-hooks
# 执行初始化 git hooks
npx simple-git-hooks
```
成功后会看到类似输出:
```log
[INFO] Successfully set the pre-commit with command: npx lint-staged
[INFO] Successfully set the commit-msg with command: npx --no-install commitli