Vue项目启动报eslint-loader错误:eslint.CLIEngine is not a constructor如何解决
报错原因
该报错由ESLint版本与项目中旧版ESLint相关插件不兼容导致:ESLint v8及以上版本已正式移除旧版API CLIEngine,而低版本@vue/cli-plugin-eslint依赖的eslint-loader仍会调用该API,因此触发构造函数不存在的错误。
修复方案
不需要强制降级ESLint,可根据需求选择以下任意一种方案:
方案1:升级适配插件(推荐,可保留新版ESLint)
- 卸载已经废弃的
eslint-loader:
npm uninstall eslint-loader
- 安装新版ESLint适配的webpack插件:
npm install eslint-webpack-plugin --save-dev
- 升级
@vue/cli-plugin-eslint到最新兼容版本:
npm update @vue/cli-plugin-eslint --save-dev
- 删除项目根目录下的
node_modules文件夹和package-lock.json(yarn环境删除yarn.lock),重新执行依赖安装:
npm install
- 安装完成后重启开发服务即可正常编译。
方案2:降级ESLint到兼容版本
如果不想调整其他插件版本,可直接将ESLint降级到v7的最终稳定版:
- 执行降级命令:
npm install eslint@7.32.0 --save-dev
- 同样删除
node_modules和锁文件,重新安装依赖后启动服务即可。
内容的提问来源于stack exchange,提问作者Milano
相关产品推荐
相关产品推荐

