NPM 脚本被设计为故意以这种方式工作,因此退出代码 1 或 2(除 之外的任何值0
)将阻止 post 任务运行,就像它在您的操作系统上运行的方式一样。
使用--silent
标志是一种选择,但如果脚本存在其他问题,则可能会成为问题,并且当您的构建开始失败而没有任何 lint/test 错误时,您最终会撞到墙上。
最好的办法是……配置您的进程,使其在您不希望它输出的情况下不会输出错误退出代码。在这种情况下...根据您的 eslint 配置,您会合法地弹出一些错误。这将导致错误退出代码,并且(理所当然地)阻止下一个任务运行。当您使用 npm 脚本时,这实际上非常有用,因为当您知道有错误时,您可以防止不必要地运行测试/构建步骤。
因此,在这种情况下,您希望将一个.eslintrc
文件添加到您的项目中,并指定一些规则来处理 linting 错误以及 npm 错误。
我在.eslintrc
下面发布了一个快速示例文件。在命令行上运行eslint
时,它会自动检测任何.eslintrc
或.eslintignore
文件,并遵守它们的配置。
下面的示例将清除您的 linting 错误,但请记住,它会更改 eslint 拾取该“触发器”时将抛出的退出代码。当我将规则更改为 时0
,这意味着它在识别出该模式时不会提醒您。
您可以阅读有关使用和配置规则代码的更多信息,或者...查看我创建的使用 npm 作为构建工具并包括 eslint 使用的种子项目:react-flux-npm-automation
// /path/to/project/.eslintrc
{
"parser": "babel-eslint",
"env":{
"browser":true,
"node":true,
"es6":true
},
"rules": {
"strict":0,
"quotes":0,
"no-unused-vars":0
}
}