用 ESLint 语法检查定位脚本代码错误

「脚本保存了却没反应,代码里哪个字符写错了?」——内置编辑器的 ESLint 语法检查就是干这个的。官方主页对它的描述带着自嘲:「你的脚本不工作?Tampermonkey 的语法检查也许能找到问题。」
它检查什么
ESLint 是 JavaScript 静态检查工具,编辑器用它实时扫描代码:
- 语法错误:少个括号、逗号写成分号、字符串没闭合;
- 可疑写法:未定义的变量、声明了没用的变量、不能到达的代码;
- 风格提示:与错误级别区分显示。
界面上的表现
- 出问题的行左侧出现标记,鼠标悬停看具体提示;
- 问题会标注级别(错误/警告);
- 编辑器设置区可以调整语法检查的开关与细节——见上方截图中的编辑器设置界面,入口在设置页的「编辑器」分组。
典型新手错误清单
| ESLint 提示 | 实际原因 |
|---|---|
xxx is not defined | 变量名拼写错,或用了没 @grant 声明的 GM 函数 |
Unexpected token | 括号/引号不配对,常见于复制代码带了全角符号 |
Missing semicolon | 缺分号(警告级,通常不致命) |
xxx is defined but never used | 声明了没用的变量(提示级) |
GM 函数被报未定义时,先检查头部 @grant 有没有声明该函数——这是「代码没错但不跑」的高频原因,见grant 权限。
与运行时报错的关系
ESLint 抓的是「写的时候就看得出来的错」。逻辑错误(比如选择了不存在的元素)要靠运行时的控制台输出定位:页面 F12 控制台,或扩展后台日志——后者需要开调试级别,见调试日志。
写作节奏建议
改一段存一次(Ctrl+S),让检查始终覆盖最新代码;大段粘贴外部代码后先看一遍标记再刷新页面,能省掉大量「改了没生效」的迷惑。