NPM 撤回已发布的版本
1 | npm unpublish $PackageName@$version |
背景
之前写了一个UI组件库ui-nuclear-mobile
,其v1.0.8
版本上发现了一个css
错误。此错误修复后,更新版本至v1.0.9
。本以为到此万事大吉,结果发现在更新v1.0.9
的过程中,引入了其他的bug
。发现有一个使用方已经更新到了v1.0.9,
只好让其回退到v1.0.8
。
决策
为了防止线上有问题的v1.0.9
不会被更多的人使用,有两个办法:
- 快速修复好bug,发布新的版本
- 撤回
v1.0.9
,修改好之后重新发布
如果选择1
,定位bug和修复bug都需要时间。在这段时间内v1.0.9
极有可能被使用方更新,之后再修复存在不确定性。整体时间周期和2
方案没有本质性的差别。最终选择了方案2
1 | npm unpublish [email protected] |
反思
后续引入的bug,应该在被Merge进开发分支时被发现。说明测试和代码review还存在着很多不足。后续的事实证明,该bug是可以被测试出来的。
流程控制依然是安全生产中一个比较重要的环节,该事件引以为戒