npm prebuild:如果prebuild有错误,如何使构建失败

时间:2019-05-13 09:40:40

标签: npm create-react-app npm-scripts

在调用实际的“ build”之前,我正在使用“ prebuild”挂钩运行一些逻辑。如果预构建逻辑检测到错误,是否有使构建失败的方法?

我尝试过:

process.exit( -1 );

进入预构建Node JS脚本,然后:

throw err;

没有成功。

1 个答案:

答案 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的评论。