【发布时间】:2017-11-17 19:39:25
【问题描述】:
我目前有一个用于运行 linter 的 npm 脚本。显然会输出一些错误,但 npm 脚本会失败,而不仅仅是显示错误并继续。
这很糟糕,尤其是当我有其他东西调用脚本时,因为它惊人地破坏了一切。我总是可以运行npm run lint --force 以避免错误,但我并没有一直拥有--force 的奢侈(例如,使用 git-hook)。
如何设置我的脚本以输出错误而不造成混乱?
【问题讨论】:
我目前有一个用于运行 linter 的 npm 脚本。显然会输出一些错误,但 npm 脚本会失败,而不仅仅是显示错误并继续。
这很糟糕,尤其是当我有其他东西调用脚本时,因为它惊人地破坏了一切。我总是可以运行npm run lint --force 以避免错误,但我并没有一直拥有--force 的奢侈(例如,使用 git-hook)。
如何设置我的脚本以输出错误而不造成混乱?
【问题讨论】:
找到答案:
只需在命令末尾添加:exit 0 即可!
【讨论】:
"webpack": "webpack || exit 0" 的以下内容。
还有一些其他选项也是跨平台的:
eslint || true
要在 Windows 上运行,您需要先npm install cash-true
exitzero eslint
您需要先npm install exitzero
【讨论】:
我想在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
【讨论】: