如何让npm在安装模块的过程中停止

我给npm包写了一个preinstall脚本,在包安装之前执行进行Node版本检查

if (semver.gt('14.0.0', nodeVer)) {
  log.error('Please upgrade node version >= 14.0.0\n');
  process.exit();
}

但如果我的Node版本小于14的时候,这个错误日志确实可以打印出来,但后面的process.exit();似乎没有效果,有什么方式可以中断此时的npm安装。。

阅读 3.2k
1 个回答

有效果的,但你需要返回非 0 的值:

process.exit(1); // 随便自定义错误代码,非 0 就可以;0 是正常退出。

P.S. 某些版本的 npm 表现比较怪异(7.x?见此 Issue:https://github.com/npm/cli/is...), preinstall 钩子居然是等到依赖安装完之后才执行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题