我正在尝试编写一个运行ava的npm脚本,如果一切都通过,将运行另一个(部署)命令。
如何在js中获得ava测试的结果,或者通过管道传输到文件或以下命令?
所需的功能如下所示:
npm run safe-deploy
哪个会运行ava,如果一切都通过(由退出代码或解析输出确定)将运行另一个cli命令。
之前有没有人这样做过,如果有的话,最合适的解决办法是什么?
答案 0 :(得分:1)
您可以做的最简单的事情就是使用bash &&
运算符。请查看this answer以获取更多详细信息。
它完全符合您的要求:仅在第一个命令成功执行的情况下运行第二个命令。
例如,如果您有两个npm test
和npm run deploy
,则可以将它们与&&
结合使用,以生成safe-deploy
命令。
只有在测试通过时才会执行deploy
命令。
这是一个最小的package.json,你可以拥有:
{
"name": "ava-safe-deploy",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "ava",
"deploy": "echo 'deployed successfully!'",
"safe-deploy": "npm test && npm run deploy"
},
"license": "ISC",
"devDependencies": {
"ava": "^0.25.0"
}
}
如果测试失败,您会看到常规ava
错误消息: