npm 脚本忽略错误

npm scripts ignore errors

我目前有一个用于 运行lint 的 npm 脚本。显然会有一些错误被输出,但 npm 脚本失败而不是只显示错误并继续。

这太糟糕了,尤其是当我有其他东西调用脚本时,因为它奇妙地破坏了一切。我总是可以 运行 npm run lint --force 来避免错误,但我并不总是 --force 奢侈(例如,使用 git-hook)。

如何设置我的脚本来输出错误而不造成混乱?

找到答案:

只需在命令末尾添加:exit 0 即可!

我想在 npm scripts 中解决这个问题总是会有一些局限性。有一个微模块runjs,它是一种对脚本的小增强。问题是您可以 运行 cli 命令并处理 JS 中的错误。所以你可以这样做 (runfile.js):

import { run } from 'runjs'

export function lint () {
  try {
    run('eslint .')
  } catch (e) {
    // handle error how you want, you can silently just do nothing or re-throw it by: throw e.stack
  }
}

然后在控制台中:

$ run lint

还有一些跨平台的其他选项:

eslint || true

要在 Windows 上运行,您需要先 npm install cash-true

exitzero eslint

您需要先npm install exitzero