Webpack 抑制网页包2+;ESLint额外输出(堆栈跟踪)

Webpack 抑制网页包2+;ESLint额外输出(堆栈跟踪),webpack,webpack-dev-server,eslint,webpack-2,Webpack,Webpack Dev Server,Eslint,Webpack 2,我正在将一个项目从create-react-app迁移到一个自定义的Webpack 2配置,到目前为止,除了ESLint输出之外,我的一切都与CRA版本中的一样正常工作 我习惯于看到下面的 预期产出: 但是现在我得到了一个完整的堆栈跟踪,使得这些警告占用了控制台/终端2-3倍的空间 邪恶输出: 我试过的。。。 以下webpack.config.js选项完全删除了所有输出(我不希望这样): devServer:{stats:'none'} devServer:{quiet:true} devSe

我正在将一个项目从
create-react-app
迁移到一个自定义的Webpack 2配置,到目前为止,除了ESLint输出之外,我的一切都与CRA版本中的一样正常工作

我习惯于看到下面的

预期产出: 但是现在我得到了一个完整的堆栈跟踪,使得这些警告占用了控制台/终端2-3倍的空间

邪恶输出:
我试过的。。。 以下
webpack.config.js
选项完全删除了所有输出(我不希望这样):

  • devServer:{stats:'none'}
  • devServer:{quiet:true}
  • devServer:{stats:{warnings:false}}
  • devServer.stats
    的每个其他选项对堆栈跟踪没有影响

    为了查看ESLint是否正在创建堆栈跟踪,我设置了一个自定义格式化程序以返回空白:

    rules: [
      {
        enforce: 'pre',
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: 'eslint-loader',
        options: { formatter: message => '' }
      }
    ]
    
    …具有以下输出:

    WARNING in ./src/apps/NotesApp/components/Replies/ReplyEditor.js
    ESLintError
     @ ./src/apps/NotesApp/components/Replies/Replies.js 3:0-40
     @ ./src/apps/NotesApp/components/Replies/ReplyPanel.js
     @ ./src/apps/NotesApp/components/Note.js
     @ ./src/apps/NotesApp/components/NotesList.js
     @ ./src/apps/NotesApp/containers/NotesModal.js
     @ ./src/apps/NotesApp/components/NotesApp.js
     @ ./src/apps/NotesApp/index.js
     @ ./build/buildImport.js
     @ ./src/apps/AppsLibrary/LibraryRoutes.js
     @ ./src/index.js
     @ multi (webpack)-dev-server/client?http://localhost:3000 webpack/hot/dev-server (webpack)-dev-server/client?/ (webpack)/hot/dev-server.js react-hot-loader/patch ./src/index
    
    WebpackDevServer的node.js执行创建一个
    stats
    对象,其中包含关于devServer的所有错误、警告和其他信息,以及每个
    stats。warnings
    是一条针对shell的消息,格式如下:

    "./src/apps/NotesApp/components/Replies/ReplyEditor.js
    
    [4m./src/apps/NotesApp/components/Replies/ReplyEditor.js[24m
      [2m17:1[22m  [33mwarning[39m  Line 17 exceeds the maximum line length of 120  [2mmax-len[22m
    
    [33m[1m✖ 1 problem (0 errors, 1 warning)
    [22m[39m
     @ ./src/apps/NotesApp/components/Replies/Replies.js 3:0-40
     @ ./src/apps/NotesApp/components/Replies/ReplyPanel.js
     @ ./src/apps/NotesApp/components/Note.js
     @ ./src/apps/NotesApp/components/NotesList.js
     @ ./src/apps/NotesApp/containers/NotesModal.js
     @ ./src/apps/NotesApp/components/NotesApp.js
     @ ./src/apps/NotesApp/index.js
     @ ./build/buildImport.js
     @ ./src/apps/AppsLibrary/LibraryRoutes.js
     @ ./src/index.js
     @ multi (webpack)-dev-server/client?http://localhost:3000 webpack/hot/dev-server (webpack)-dev-server/client?/ (webpack)/hot/dev-server.js react-hot-loader/patch ./src/index"
    
    …这使我看起来可以截取消息并执行类似于
    stats.warnings.map(message=>message.replace(/^\s*(at |@)+.*\n*/gm,)
    ,但这也没有任何效果


    是否有人知道此堆栈跟踪是在何处生成的,以及是否有任何方法可以将其关闭?

    从webpack的2.5.0版开始,可以通过在stats对象中设置moduleTrace:false来实现这一点:

    module.exports = {
        ...
        stats: {
            moduleTrace: false,
        },
    };
    

    通过在stats对象中设置moduleTrace:false,可以在webpack的2.5.0版中实现这一点:

    module.exports = {
        ...
        stats: {
            moduleTrace: false,
        },
    };
    

    感谢您添加此功能!不过我还是有点困惑。我想这会被作为
    false
    包含在
    quiet:true
    stats:false
    中,但现在还没有。此外,这只会删除终端中的输出,但我的Chrome控制台仍然显示令人不快的“moduleTrace”。你知道为什么这些行为不同吗?你应该围绕默认设置展开讨论,我相信他们会在更改这些设置之前进行讨论。根据您运行dev服务器的方式,您需要为该服务器设置相同的选项,因为它似乎没有从主配置继承stats部分,不确定原因。感谢您添加此功能!不过我还是有点困惑。我想这会被作为
    false
    包含在
    quiet:true
    stats:false
    中,但现在还没有。此外,这只会删除终端中的输出,但我的Chrome控制台仍然显示令人不快的“moduleTrace”。你知道为什么这些行为不同吗?你应该围绕默认设置展开讨论,我相信他们会在更改这些设置之前进行讨论。根据您运行dev服务器的方式,您需要为该服务器设置相同的选项,因为它似乎没有从主配置继承stats部分,不确定这是为什么。
    module.exports = {
        ...
        stats: {
            moduleTrace: false,
        },
    };