前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NPM依赖包版本号~和^的区别及最佳实践

NPM依赖包版本号~和^的区别及最佳实践

作者头像
用户1148881
发布2018-07-31 11:03:51
1K0
发布2018-07-31 11:03:51
举报
文章被收录于专栏:jianhuicodejianhuicode
你会发现很多项目的依赖包版本号前面会加上~,或者是^,以Angular2为例:
  • 那么~和^的作用和区别是什么呢?

~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0 详细可参考http://stackoverflow.com/questions/22343224/whats-the-difference-between-tilde-and-caret-in-package-json

那么该如何选择呢?当然你可以指定特定的版本号,直接写1.2.3,前面什么前缀都没有,这样固然没问题,但是如果依赖包发布新版本修复了一些小bug,那么需要手动修改package.json文件;~和^则可以解决这个问题。

但是需要注意^版本更新可能比较大,会造成项目代码错误,比如这篇文章(http://blog.csdn.net/u014291497/article/details/54427103)的问题就是因为package.json使用^1.5.7造成的,1.6版本的包与现有代码不兼容。

所以建议使用~来标记版本号,这样可以保证项目不会出现大的问题,也能保证包中的小bug可以得到修复。

参考链接:Node and Npm Version Numbering: Guide and Best Practices

转载自【http://blog.csdn.net/u014291497/article/details/70148468】
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你会发现很多项目的依赖包版本号前面会加上~,或者是^,以Angular2为例:
  • 转载自【http://blog.csdn.net/u014291497/article/details/70148468】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档