pakeage.json版本未锁定造成自动构建时依赖报错

构建失败

自动化构建失败,总是莫名报tslib的包找不到

但是排查项目中并没有使用对应的包

tslibtypeScript的依赖包,项目中并没有使用typeScript

排查定位

经测试,本地build成功,后定位到是某个包的升级依赖于于typeScript.

由于没有pakeage-lock.json版本锁定造成

 "js-base64": "^2.5.1",

pakeage.json^符号代码在npm install的时候,如果没有锁定,那么在x.0.0的大版本下

会自动检测有没有小版本的更新,那么下次npm install,js-base64的版本可能自动更新为2.5.9之类的

由于npm生态比较散乱,兼容性不是很好,一旦特性更新,很可能造成依赖冲突或者其他问题

所以优先排查版本问题,是否锁定,是否变化

Tips

这种非代码层面的问题,一般不太好定位,建议初期就定义好规范

其次这个错误已经出了几次了,但凡出现过两次以上的,都要做好记录,如这篇文章

文档是个好东西,自己可以不犯错,但是高效沟通,避免其他人犯错也是提高效率,少踩坑的一种方式.