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

ESLint报错:'document' is not defined. [no-undef] 求助

解决ESLint报错:'document' is not defined. [no-undef]

嘿,我完全懂你遇到的困扰——ESLint这套规则有时候会对浏览器里默认存在的全局变量“认生”,比如document和console,它不知道这些是浏览器环境自带的“内置变量”,所以就抛出了no-undef的错误。别担心,这不是你代码的逻辑问题,只是ESLint的配置没跟上你的运行环境而已。

给你几个简单易懂的解决办法,选一个适合你的就行:

方法一:全局配置ESLint的运行环境

这是一劳永逸的办法,以后所有文件都不会再报这类错:

  1. 在你的项目根目录下创建一个名为.eslintrc.json的文件(如果已经有这个文件就直接打开)
  2. 在文件里写入以下内容:
{
  "env": {
    "browser": true,
    "es2021": true
  }
}

其中"browser": true就是明确告诉ESLint:“我是在浏览器环境写代码哦,那些浏览器自带的全局变量都是合法的!”

如果你的项目是用package.json管理的,也可以直接在package.json里添加这段配置:

"eslintConfig": {
  "env": {
    "browser": true
  }
}

方法二:在单个文件里声明全局变量

如果你不想改动全局配置,只想让当前文件不再报错,可以在代码的最顶部加一行注释:

/* global document, console */

这样ESLint就会明白这两个变量是全局可用的,不会再提示“未定义”了。

额外小说明

你提到换成console.log也报错,其实道理完全一样——console也是浏览器(以及Node环境)的全局变量,ESLint默认没开启对应的环境识别,所以才会触发同样的错误。上面的两种方法同样能解决这个问题。

内容的提问来源于stack exchange,提问作者Nowondering

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:13:42