如何修复Adobe Brackets中的‘ERROR: 'Console' is not defined. [no-undef]’错误?
解决Adobe Brackets中
Console is not defined的ESLint报错问题 首先咱们理清问题根源:你看到的[no-undef]报错是Brackets内置的ESLint代码检查工具抛出的——它默认只识别JavaScript标准全局对象,而你写的Console(大写C)并不是标准全局变量(标准写法是小写的console)。至于代码在控制台能正常运行,大概率是你实际运行时不小心改成了小写,或者你的运行环境(比如自定义环境)恰好定义了Console这个全局对象,但ESLint并不知晓这一点。
下面给你几个解决办法,按推荐程度排序:
1. 修正大小写(最推荐)
直接把Console.log改成console.log——这是JavaScript的标准写法,既符合规范,能彻底解决ESLint报错,还能避免后续可能出现的兼容问题:
var x = 5; var y = 7; var z = x + y; console.log("John won with " + z + "points");
2. 告诉ESLintConsole是全局变量
如果你确实需要保留大写的Console(比如自己定义了这个对象,或者运行环境要求这么写),可以给ESLint明确声明这个全局变量:
- 单文件临时解决:在代码最顶部加一行注释,让ESLint忽略这个变量的未定义检查:
/* global Console */ var x = 5; var y = 7; var z = x + y; Console.log("John won with " + z + "points"); - 项目永久解决:在项目根目录新建一个
.eslintrc文件,写入以下配置,让ESLint全局识别Console:
Brackets会自动读取这个配置文件,之后整个项目里的{ "globals": { "Console": true } }Console就不会再触发no-undef报错了。
3. 禁用no-undef规则(不推荐)
如果只是想快速关掉这个报错,也可以直接禁用ESLint的no-undef检查,但这个规则能帮你发现真正的变量未定义错误,所以除非万不得已不建议这么做:
- 单文件禁用:在代码顶部加注释:
/* eslint-disable no-undef */ var x = 5; var y = 7; var z = x + y; Console.log("John won with " + z + "points"); - 全局禁用:在
.eslintrc里修改规则:{ "rules": { "no-undef": "off" } }
内容的提问来源于stack exchange,提问作者Riddick
相关产品推荐
相关产品推荐

