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,
},
};