VS Code中ESLint错误不显示且任务Runner报TypeError问题
解决ESLint命令行正常但VS Code无提示+
createRequire is not a function错误 我来帮你搞定这个ESLint的问题,你现在遇到两个关联的问题:命令行执行yarn lint正常,但VS Code里看不到ESLint错误提示,同时还抛出TypeError: createRequire is not a function的报错。下面是具体的分析和解决步骤:
错误原因分析
createRequire是Node.js v12.2.0及以上版本才新增的API,而你使用的ESLint 7.x版本依赖这个API。如果本地Node版本低于v12.2.0,就会触发这个错误。另外VS Code的ESLint插件可能使用了不兼容的Node版本,或者项目依赖、配置存在冲突,导致IDE内无法正常加载ESLint。
解决方案
1. 升级Node.js到兼容版本
ESLint 7.x要求Node.js最低为v10.12.0,但createRequire需要v12.2.0+,建议直接升级到Node.js LTS版本(比如v14.x或v16.x),避免版本兼容问题:
如果用nvm管理Node版本(推荐),执行以下命令:
# 安装nvm(未安装的话) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 安装最新LTS版本 nvm install --lts # 切换到该版本 nvm use --lts
2. 修复ESLint依赖版本兼容性
你的项目里ESLint是7.1.0,但eslint-config-airbnb是16.1.0,这个版本组合存在兼容性问题。建议更新到适配ESLint 7.x的版本:
# 更新eslint-config-airbnb到兼容版本 yarn add eslint-config-airbnb@18.2.1 --dev # 同步更新相关插件 yarn add eslint-plugin-import@2.25.4 eslint-plugin-jsx-a11y@6.5.1 eslint-plugin-react@7.28.0 --dev
3. 配置VS Code ESLint插件使用正确的Node版本
VS Code的ESLint插件可能默认使用了系统全局的旧Node版本,导致报错。可以手动指定Node路径:
- 打开VS Code设置(快捷键
Ctrl+,/Cmd+,) - 搜索
ESLint: Node Path,填入你当前使用的Node路径(可以通过which node或where node在终端获取) - 检查工作区的
.vscode/settings.json,确保ESLint是启用状态:{ "eslint.enable": true, "eslint.validate": ["javascript", "javascriptreact"], "eslint.nodePath": "/usr/local/bin/node" // 替换成你的实际Node路径 } - 重启VS Code,或者打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P)执行ESLint: Restart ESLint Server
4. 统一ESLint配置来源
你的项目同时存在.eslintrc文件和package.json里的eslintConfig字段,可能导致配置冲突。建议二选一:
- 删除
package.json中的eslintConfig字段,只保留.eslintrc的配置 - 或者把
.eslintrc的内容合并到package.json的eslintConfig中
验证修复
完成以上步骤后:
- 执行
yarn lint确认命令行正常运行无报错 - 在VS Code中打开一个有ESLint错误的JS文件,检查是否能正常显示红色波浪线提示
- 查看ESLint任务runner是否不再抛出
createRequire错误
内容的提问来源于stack exchange,提问作者user3771215
相关产品推荐
相关产品推荐

