在调用实际的“ build”之前,我正在使用“ prebuild”挂钩运行一些逻辑。如果预构建逻辑检测到错误,是否有使构建失败的方法?
我尝试过:
process.exit( -1 );
进入预构建Node JS脚本,然后:
throw err;
没有成功。
答案 0 :(得分:0)
RobC发表评论后再进行调查,并在此处回复以帮助其他遇到相同问题的人。
这与cross-var的使用有关:
"scripts": {
"prebuild": "cross-var $INIT_CWD/my-path/my-script",
"build": "react-app-rewired build",
},
在查看cross-var的源代码时,我注意到了两个不同的执行路径,这取决于所执行的脚本是否具有某些参数。在这种情况下,使用spawn()而不是exec()。而且它似乎可以更好地处理错误执行。所以我最终写了这样的东西:
"scripts": {
"prebuild": "cross-var $INIT_CWD/my-path/my-script hack",
"build": "react-app-rewired build",
},
现在,失败的预构建可以正确地停止构建过程。
感谢RobC的评论。