从 ESLint 返回结果而不是 NPM 脚本中的错误

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

我想要一个 NPM 脚本,它可以调用 ESLint 并将其路径传递给以跨平台方式指定为命令行参数的单个文件。

例如,如果我像这样运行脚本:

npm run lint --file=./path/to/some/file.js
,那么我希望它运行命令
eslint ./path/to/some/file.js

我快到了,这是我到目前为止在 package.json 中的内容:

"scripts": {
  "lint": "node -e \"try { require('child_process').execSync(`eslint ${process.env.npm_config_file}`);} catch { console.log('error!') }\"
}

这是有效的,如果我将路径传递给包含任何lints的文件,则该命令将成功执行,并且进程结束时没有任何预期的输出,并且如果传递一个does包含lints的文件,然后我在控制台中看到我的

error!
消息。

如果我不将命令包装在 try...catch 中,那么我不会显示列出 lint 的 ESLint 的输出,而是会看到某种 Node 错误,我猜是因为 ESLint 的非 0 退出。

如何在 NPM 脚本中从 ESLint 返回 lint 报告?

node.js eslint package.json
1个回答
0
投票

答案只是在我的脚本中传递给 catch 块的错误对象的

toString()
属性上调用
stdout

"scripts": {
  "lint": "node -e \"try { require('child_process').execSync(`eslint ${process.env.npm_config_file}`);} catch(error) { console.log(error.stdout.toString()); }\"",
}

本例中错误的

stdout
属性包含
Buffer

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