node.js - 尽管在测试脚本中抛出了错误,但“npm publish”并未被阻止
问题描述
如果我没记错的话,使用测试脚本的一个很好的理由是防止发布有缺陷的代码。因此,我编写了自己的测试脚本,如果其中一个测试用例失败,则会引发错误。
// index.test.js
if (!testCase) {
throw new Error("Error detected, publishing process supposed to be canceled!");
}
// package.json
"scripts": {
"test": "node index.test.js",
"prepublishOnly": "npm test"
},
现在,当我运行npm publish
我的测试脚本时,我的测试脚本会按预期执行,抛出一个错误,但我的 npm 包仍然被发布。
我想使用 Mocha 或 Jest 之类的测试框架可能会解决问题,但我更愿意在普通的 node.js 中完成!
解决方案
谢谢你的评论@tkausl!
我假设,即使抛出异常,节点进程也不会以错误代码退出,这使 npm 认为一切顺利。您需要确保以错误代码退出。——</p>
使用process.exit(1)
代替throw new Error()
确实可以解决问题!
推荐阅读
- dynamics-crm - 无法提取没有使用 CRM SDK FetchXML 绑定的帐户的联系人
- python - 如何处理tensorflow中的数据大小错误
- flutter - Flutter - 在 PageView 中传递数据
- android - Gradle 同步在 Windows 10 上的 Android Studio 4、0、1 中失败
- javascript - 在反应中使用功能显示通知/模式
- javascript - 我们如何使用 for 循环初始化多个变量?
- excel - 从动态表中提取信息到静态稳定
- php - 如何正确地将外语名称编码为 php 中 .txt 文件的名称
- python - 解码csv文件中的base64字符串
- react-native - React: TypeError: undefined is not a function ('...events.map...'附近)。我是否正确传递了这组对象?