资讯专栏INFORMATION COLUMN

一个npm包依赖引发的错误

Chao / 1327人阅读

摘要:重新梳理项目中的包依赖时,觉得使用或者在正式项目中似乎不靠谱,因为永远不知道真正打包的结果是不是对的。为了稳妥,我锁住了所有依赖的版本。再看看的依赖来源,发现是一个的组件中引用的,那么就是和这两个组件引用有冲突。

重新梳理项目中的包依赖时,觉得使用^或者~在正式项目中似乎不靠谱,因为永远不知道真正打包的结果是不是对的。一个没有什么安全的感人,总能想到很多风险,例如有个家伙在新版本中恶意注入了"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 
ode_modules
c-tooltiplib
 @ ./~/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 
ode_modules
c-tooltiplib
 @ ./~/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 
ode_modules
c-tooltiplib
 @ ./~/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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91672.html

相关文章

  • 每周下载数百万次!恶意软件感染Linux和Windows设备引发供应链攻击

    摘要:据开发者称,他的帐户被劫持并用于部署该库的三个恶意版本。报告指出,恶意软件包被称为编目为以及和编目为。研究人员无法完全确定恶意行为者计划如何针对开发人员。月份网络攻击者对进行了加密挖掘攻击月份发现了加密挖掘恶意软件。 UA-Parser-JS 项目被劫持安装恶意软件 10月22日,攻击者发布了恶意版本的UA-Parser-JS NPM库,以在Linux和Windows设备上安装加...

    姘搁『 评论0 收藏0
  • 你想知道关于package-lock.json一切,但是太害怕了问了?

    摘要:内容结构是中列出的每个依赖项的大型列表,应安装的特定版本,模块的位置,验证模块完整性的哈希,它需要的包列表,以及依赖项列表。期望与真实行为之间的这种冲突在中引发了一个非常有趣的问题线索。此更改是作为的一部分发布的,该版本于年月日上线。 showImg(https://segmentfault.com/img/bVbkuXN?w=1440&h=1080); 想阅读更多优质文章请猛戳Git...

    OBKoro1 评论0 收藏0
  • React Native植入原生Android应用流程解析

    摘要:在应用内添加依赖回到,到的文件级别的里添加依赖最后一行的就是我们新增的,注意这里的版本号要和里的一致。因此,建议用这样的写法,并检查版本号是否和里的一致。 引言 React Native是现在移动开发新的可选方案,也带来了原属于Web领域的React的优秀开发特性。另一方面,React Native的技术栈一经掌握,可以用于iOS、Android及Windows(见此)多个平台,即所说...

    worldligang 评论0 收藏0
  • 使用NPM

    摘要:另一方面,这样做也无法支持不同项目使用不同版本的。我们可以换一个源,即把服务器换到国内,例如淘宝的源运行下面的命令即可切换淘宝源的配置被存储在,你可以随时改。安装方法使用方法切换源等见链接 Nodejs生态圈很强大,第一个原因就是NPM,因为全球有无数的程序员在NPM中贡献了自己的力量。 为了避免造轮子,我们有时候会用到其他人的劳动成果,比如一些优秀的框架,比如Express,我们直接...

    wanghui 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<