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
我目前有一个用于 运行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