You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ESLint检测出ReferenceError?

如何让ESLint检测出ReferenceError?

我最近碰到个头疼的事儿——用Node环境的ESLint检查代码,结果它居然没检测到明显的ReferenceError。比如我写了个极简的测试文件mre.js,代码是这样的:

console.log(obj); let obj = 2;

然后我跑ESLint命令:

$ ./node_modules/.bin/eslint mre.js

结果啥警告都没出来!我都已经把ESLint更到最新的9.2.6版本了,确认过版本没问题:

$ npm update eslint
$ npm info eslint version

这到底咋回事啊?怎么才能让ESLint把这种变量先使用后声明的ReferenceError揪出来?

别担心,这其实是因为默认的ESLint规则集里,没有自动开启检测这类变量提升相关错误的规则。你只需要做这几步就能解决:

  • 首先找到你的ESLint配置文件——如果是旧版格式就是.eslintrc.js/.eslintrc.json,新版Flat Config就是eslint.config.js,在里面开启no-use-before-define规则:

    • 要是用的是旧版配置文件,这么加规则:
      {
        "rules": {
          "no-use-before-define": "error"
        }
      }
      
    • 要是用的是新版Flat Config,就这么写:
      export default [
        {
          rules: {
            "no-use-before-define": "error"
          }
        }
      ];
      
  • 保存配置之后,再重新跑一遍ESLint命令,你就能看到它精准报错,提示你obj is used before being defined了!

另外提个小细节:ESLint 9.x之后,默认启用的规则做了调整,这条检测前置使用的规则不再是默认开启的,所以得手动配置才行。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:23:07