一个npm包依赖引发的错误

重新梳理项目中的包依赖时,觉得使用^或者~在正式项目中似乎不靠谱,因为永远不知道真正打包的结果是不是对的。一个没有什么安全的感人,总能想到很多风险,例如有个家伙在新版本中恶意注入了"rm * -rf"这样的代码,那么我们的项目不是悲剧了。为了稳妥,我锁住了所有依赖的版本。根据npm的机制而言,这样还是堵不住所有入口的,除非把所有的依赖包的package.json中的版本依赖也锁住。当然这是不可能的。不过,风险还是会小一点的。

很快就改好了package.json的内容,然后把项目跑起来(希望上帝保佑吧)遗憾的是,出现错误:

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/classCallCheck' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 15:23-70

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/possibleConstructorReturn' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 19:34-92

ERROR in ./~/rc-tooltip/lib/Tooltip.js
Module not found: Error: Cannot resolve module 'babel-runtime/helpers/objectWithoutProperties' in \node_modules\rc-tooltip\lib
 @ ./~/rc-tooltip/lib/Tooltip.js 11:32-88

看上面的错误信息是babel-runtime的问题,一下子懵逼了,之前是对的,怎么锁住版本好后,babel-runtime就跪了?马上看看babel-runtime的源码,发现确实没有classCallCheck等文件,难道版本有问题?看了一下版本,发现babel-runtime的版本居然是4.7.3,什么鬼!现在的版本已经是6.23.0,绝对是不对的。再看看babel-runtime的依赖来源,发现是一个'confit'的组件中引用的,那么就是rc-tooltip和confit这两个组件引用babel-runtime有冲突。
解决方案:
在项目package.json中定义babel-runtime的版本为6.23.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值