ESLint 同时输出到文件和控制台

Mas*_*ata 16 command-line-interface node.js eslint

默认情况下,ESLint 会将其结果打印到标准输出。如果添加输出选项,它将把输出重定向到文件。到目前为止一切都很好,但是有没有办法做到这两点呢?

我们需要 GitLab 的文件输出来解析结果并将其显示在 UI 中,但我们的一些开发人员不愿意改变他们做事的方式,而是想查看输出。

是否有一种开箱即用的方法可以同时获得两者,或者是我唯一的机会编写自己的脚本来使用其文档中提到的 CLIEngine Node 内容运行 ESLint?

提前致谢。

Mas*_*ata 14

因此,经过一番研究,我想我自己找到了答案。

基本上有两种方法可以同时在控制台和文件上输出:

  1. 最简单的方法是使用名为ESLint Output的 JavaScript 包。
  2. 更复杂的方法基本上是自己构建所述包。您必须创建一个将运行的 JavaScript 文件而不是 ESLint,并在该文件中导入/需要 ESLint。通过将 ESLint 作为包导入而不是直接运行它,您可以使用 Node 的 CLIEngine 在要检查的文件上运行 ESLint 并将输出存储在变量中。然后可以将该输出保存到文件中并再次打印。

希望选项 2 中描述的方法与选项 1 中的包的作用完全相同:将选项 2 包装在一个易于理解的配置文件中,并从默认文件中收集所有配置,这一点不会让人感到惊讶eslintrc


小智 13

只需将 ESLint 结果写入文件,然后使用ESLint 格式化程序之一读取它:

npx eslint ./cartridges/ --format json --output-file result.json
node -p "require('./node_modules/eslint/lib/cli-engine/formatters/unix.js')(require('./result.json'))"
Run Code Online (Sandbox Code Playgroud)