如何在终端中只打印出eslint错误的数量?

问题描述 投票:0回答:6

我正在处理的项目有一个巨大的代码库,这意味着如果我在终端中执行

eslint *.js
,我会在输出中得到数千行。我想调整这个命令只是为了打印出错误的数量,而不是实际一一列出所有错误。

如何使我的结果与此类似:

96 problems
terminal console output command-line-interface eslint
6个回答
3
投票

再想一想,如果您真的只想要一个数字,那么创建您自己的格式化程序,如下所示。

const errorsInFile => (el, currentEl) => el + currentEl.errorCount

module.exports = function (results) {
  return `${results.reduce(errorsInFile, 0)} problems`
}

或者只是为了好玩,我们可以使用 Ramda 来实现它的功能

import { map, pipe, prop, reduce, sum } from 'ramda'

const sumArgs = (...args) => sum(args)
const nProblems = n => `${n} problems`

module.exports = pipe(
  map(prop(‘errorCount’),
  reduce(sumArgs),
  nProblems,
)

2
投票

你可以尝试:

eslint --format compact 2>&1 >/dev/null | egrep '^[0-9]+ problems'

结果:

169 problems

1
投票

您可能会发现这很有用,它会为您提供每种错误类型的编号

https://www.npmjs.com/package/eslint-formatter-summary-chart

% eslint --format summary-chart src
 
==== Files ====
bar.js : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  33.33%
foo.js : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  66.67%
 
 
==== Rules ====
constructor-super     : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  16.67%
no-cond-assign        : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  16.67%
no-constant-condition : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  16.67%
no-debugger           : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  16.67%
no-unused-vars        : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  33.33%

0
投票

在 shell 脚本(例如 bash 或 zsh)中,您可以使用

eslint
 计算 
wc
输出的错误行数,并将其输出到控制台。
echo

结果示例:

ERRCOUNT=$(eval "eslint | wc -l") echo $OUTPUT errors



0
投票

我遇到了同样的问题,并且当前提到的解决方案都不适合我。所以我想出了一个可以解决你的问题的 Bash 语句。确保您位于正确的目录中,并拥有可以执行 Bash 命令的终端,并且还设置了 npm lint 脚本。

注意:在Windows环境中,您可以使用Git Bash来运行这些命令。

TL;博士

仅显示错误和警告数量的命令

185 errors

96

以预期格式显示错误和警告数量的命令

npm run lint 2>&1 | grep -Ei 'error|warning' | wc -l

96个问题

npm 脚本

npm run lint 2>&1 | grep -Ei 'error|warning' | wc -l | xargs -I {} echo "{} problems"

详细说明

仅显示错误或警告的数量

跑步时:

"scripts": { "lint-count": "next lint 2>&1 | grep -Ei \"error|warning\" | wc -l | xargs -I {} echo \"{} problems\"" ...rest }

您的输出应采用以下格式:

调试器监听 ws://127.0.0.1:57773/79b9261b-d415-45b2-a075-531d9c9e36e5 如需帮助,请参阅:
https://nodejs.org/en/docs/inspector

附带调试器。 等待调试器断开连接... (来自 Linter 的错误或警告) (每行一个)

第一部分是标准部分,而来自 lint 命令的错误和警告被控制台视为错误。因此,您还必须在获取数字的命令中考虑 stderr。

要获取错误数,我们必须在 grep 出错误和警告后计算行数的模式下使用

wc

命令。 执行 Lint 命令时获取错误数量的方法是:

npm run lint

  • npm 运行 lint

    : 这是获取项目的 Lint 输出的命令。它有错误和警告,每一行最多有一个错误或警告。

  • 2>&1

    : 这是为了捕获输出的 StdErr 部分。这是包含 linter 错误和警告的部分。该命令将标准错误重定向到与标准输出相同的位置,这意味着 lint 命令输出的错误部分可以被捕获,我们可以统计错误和警告。

  • grep -Ei '错误|警告'

    : 然后我们输入 grep 来查找与错误或警告匹配的任何内容,忽略大小写。

  • wc-l

    : 最后,我们使用内置的字数统计命令来统计匹配的行数。如果计算单词数,结果将比 linter 错误和警告中的单词数高得多。

  • 输出示例

96

按照您想要的格式显示错误或警告的数量

为了回答您的问题,我们需要使用 Bash 格式化数字。为此,我们使用已经学到的知识来获取数字,然后将其传输到可以格式化文本的命令中。

npm run lint 2>&1 | grep -Ei 'error|warning' | wc -l

    xargs -I {} echo "{} 问题
  • : 这会将其格式化为您最初想要的格式。
  • 输出示例

96个问题

将此解决方案添加到您的 npm 脚本中

要将此解决方案添加到您的 npm 脚本中,您必须正确转义字符。导航到您的 npm 脚本并将此行添加到您的脚本中。

npm run lint 2>&1 | grep -Ei 'error|warning' | wc -l | xargs -I {} echo "{} problems"

注意:这假设您正在使用 Next.js 项目。您必须调整命令以适应您使用的任何框架。关键思想是正确转义字符。


-1
投票
https://eslint.org/docs/user-guide/command-line-interface

),您可以使用标志 --quiet 运行 "scripts": { "lint-count": "next lint 2>&1 | grep -Ei \"error|warning\" | wc -l | xargs -I {} echo \"{} problems\"" ...rest }

	
© www.soinside.com 2019 - 2024. All rights reserved.