# JS Error Fixer

> 自动检查和修复 JavaScript 文件的语法错误、类型错误等问题。支持单个文件或整个文件夹批量处理。何时使用：当用户需要检查 JS 文件错误、修复 JS 语法问题、或批量处理 JS 文件时。

- Skill: `steelan9199/js-error-fixer` (Agent Skill)
- Install (CLI): `npx skillmds add steelan9199/js-error-fixer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/steelan9199/js-error-fixer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: steelan9199 (https://skillmd.com/u/steelan9199)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/steelan9199/js-error-fixer

---


# JavaScript 错误检查与修复器

## 触发映射

| 用户输入触发词                                  | AI 执行动作            |
| ----------------------------------------------- | ---------------------- |
| "检查 JS 错误" / "修复 JS 问题" / "JS 语法错误" | 按【检查修复模式】执行 |
| "检查文件夹" / "批量处理 JS" / "修复所有 JS"    | 按【批量处理模式】执行 |
| "检查这个文件" / "修复这个 JS"                  | 按【单文件模式】执行   |

---

## 执行模式

### 检查修复模式

**触发**：用户提到检查或修复 JS 错误

| 步骤 | 执行动作              | 具体命令/操作                                         |
| ---- | --------------------- | ----------------------------------------------------- |
| 1    | 检查 ESLint 配置      | 检查项目是否已安装 ESLint 和配置文件                  |
| 2    | 安装 ESLint（如需要） | 运行 `npm install --save-dev eslint globals` 安装依赖 |
| 3    | 配置 ESLint（如需要） | 创建 `eslint.config.js` 配置文件                      |
| 4    | 运行 ESLint 检查      | 执行 `npx eslint <路径>` 检查 JS 文件                 |
| 5    | 分析错误              | 分类统计错误：语法错误、类型错误、其他                |
| 6    | 创建待办              | 运行 `TodoWrite` 创建修复任务列表                     |
| 7    | 逐个修复              | 按优先级逐个修复文件，使用 `Read` 和 `SearchReplace`  |
| 8    | 验证修复              | 再次运行 ESLint 确认错误已修复                        |
| 9    | 输出报告              | 列出修复的文件和错误类型                              |

---

### 批量处理模式

**触发**：用户提到文件夹或批量处理

| 步骤 | 执行动作     | 具体命令/操作                        |
| ---- | ------------ | ------------------------------------ |
| 1    | 获取目录路径 | 询问用户或从上下文获取目标文件夹路径 |
| 2    | 查找 JS 文件 | 运行 `Glob` 搜索 `**/*.js` 文件      |
| 3    | 检查 ESLint  | 运行 ESLint 检查所有 JS 文件错误     |
| 4    | 创建待办     | 运行 `TodoWrite` 列出所有待修复文件  |
| 5    | 批量修复     | 循环处理每个有错误的文件             |
| 6    | 验证结果     | 再次运行 ESLint，输出修复报告        |

---

### 单文件模式

**触发**：用户指定某个 JS 文件

| 步骤 | 执行动作     | 具体命令/操作                       |
| ---- | ------------ | ----------------------------------- |
| 1    | 获取文件路径 | 从用户输入或上下文获取文件路径      |
| 2    | 读取文件     | 运行 `Read` 读取该文件内容          |
| 3    | 检查 ESLint  | 运行 ESLint 检查该文件的错误        |
| 4    | 分析问题     | 定位具体错误位置和类型              |
| 5    | 执行修复     | 使用 `SearchReplace` 或重写文件修复 |
| 6    | 验证修复     | 再次运行 ESLint，确认修复完成       |

---

## ESLint 配置指南

### 安装 ESLint

| 步骤 | 操作            | 命令                             |
| ---- | --------------- | -------------------------------- |
| 1    | 进入项目目录    | `cd <项目路径>`                  |
| 2    | 安装 ESLint     | `npm install --save-dev eslint`  |
| 3    | 安装 globals 包 | `npm install --save-dev globals` |

### 创建 ESLint 配置文件

创建 `eslint.config.js` 配置文件（flat config 格式）：

```javascript
import globals from "globals";

export default [
  {
    languageOptions: {
      ecmaVersion: "latest",
      sourceType: "module",
      globals: {
        ...globals.node,
        ...globals.es2022
      }
    },
    rules: {
      "no-undef": "error",
      "no-unused-vars": "warn",
      "semi": [
        "error",
        "always"
      ],
      "quotes": [
        "error",
        "double"
      ]
    }
  }
];
```

### 运行 ESLint 检查

| 检查范围            | 命令                    |
| ------------------- | ----------------------- |
| 检查单个文件        | `npx eslint <文件路径>` |
| 检查整个目录        | `npx eslint <目录路径>` |
| 检查当前目录所有 JS | `npx eslint .`          |

---

## 常见错误修复策略

| 错误类型       | 错误表现              | 修复方式                               |
| -------------- | --------------------- | -------------------------------------- |
| HTML 实体编码  | 特殊字符被编码        | 将编码字符替换为实际字符               |
| 缺少右括号 `)` | 诊断提示"应为')'"     | 找到对应左括号位置，在正确位置添加 `)` |
| 缺少分号 `;`   | 诊断提示"应为';'"     | 在语句末尾添加 `;`                     |
| 引号不匹配     | 字符串引号未闭合      | 检查字符串，补全闭合引号               |
| 花括号不匹配   | `{` 和 `}` 数量不匹配 | 找到缺失的 `{` 或 `}`                  |
| 变量未定义     | 使用了未声明的变量    | 检查变量作用域，添加声明或修正拼写     |

---

## 错误处理

| 错误场景       | 错误表现               | 处理方式                                 |
| -------------- | ---------------------- | ---------------------------------------- |
| 无 JS 文件     | Glob 搜索结果为空      | 提示用户未找到 JS 文件，询问是否调整路径 |
| 无 ESLint 错误 | ESLint 返回空          | 输出"未发现错误"，结束任务               |
| 文件无法读取   | Read 返回错误          | 跳过该文件，记录到报告，继续处理其他文件 |
| 修复后仍有错误 | 修复后 ESLint 仍有问题 | 标记为"需要人工检查"，继续处理其他文件   |
| 未安装 ESLint  | `npx eslint` 失败      | 先安装 ESLint 和 globals 包              |

---

## 核心法则检查表

| 法则            | 检查标准                                  | 通过？ |
| --------------- | ----------------------------------------- | ------ |
| ⭐⭐⭐ 人类中心 | 用户只需说自然语言，AI 自动执行检查和修复 | ✅     |
| ⭐⭐⭐ AI 优先  | 使用祈使句指令，表格展示决策逻辑          | ✅     |
| ⭐⭐⭐ 即调即用 | 有触发映射表，用户输入 → AI 动作一一对应  | ✅     |
| 渐进披露        | 核心内容简短                              | ✅     |
| 错误处理        | 包含常见错误场景和处理方式表格            | ✅     |

