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

React/Django+webpack项目构建报eslint-loader getFormatter未定义错误

问题根因

该报错由 eslint v8 与已废弃的 eslint-loader v4 版本不兼容导致。eslint-loader 早在2020年就已停止维护,最高仅支持到eslint v7版本,你当前安装的eslint@8.1.0超出其兼容范围,调用getFormatter方法时找不到对应属性,因此触发类型错误。

解决方案

方案1:替换为官方推荐的eslint-webpack-plugin(推荐)

该方案适配你当前的webpack5+eslint8技术栈,是长期稳定的解决方案:

  1. 卸载废弃的eslint-loader
npm uninstall eslint-loader
  1. 安装官方维护的eslint-webpack-plugin
npm install eslint-webpack-plugin --save-dev
  1. 修改webpack.config.dev.js配置:
    • 顶部引入插件:
    const ESLintPlugin = require('eslint-webpack-plugin');
    
    • 去掉module.rules中js规则里的eslint-loader,修改后规则如下:
    {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: ['babel-loader']
    }
    
    • 在plugins数组中新增ESLint插件实例,原有其他插件保留:
    plugins: [
        new webpack.DefinePlugin({
            'process.env.API_URL': JSON.stringify('http://localhost:8000/api/')
        }),
        new HtmlWebpackPlugin({
            template: './src/index.html',
            favicon: './src/favicon.ico'
        }),
        // 新增ESLint插件
        new ESLintPlugin({
            extensions: ['js', 'jsx'],
            exclude: 'node_modules'
        })
    ]
    
  2. 重启开发服务,即可正常构建。

方案2:降级eslint到兼容版本(临时解决,不推荐)

如果不想修改webpack配置,可以将eslint降到v7版本适配旧的loader:

npm install eslint@7.x --save-dev

重装完成后重启构建即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:36:07