package.json bower.json等配置中dependences版本控制范围的表达方式

广告位招租
扫码页面底部二维码联系

在node的modules和bower的转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】components中,我们会先通过pa【原创不易,请尊重版权】【原创内容,转载请注明出处】ckage.json或bower.jso【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。n来配置一个dependences字段选项,当我们执行npm installbower install时,这个字段中所依赖的包会被下载下来放到【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】对应的目录中。那么这个字段中配置的包版本本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。具体是怎样配置呢?

【关注微信公众号:wwwtangshua【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.netngnet】【原创不易,请尊重版权】【版权所有,侵权必究】

确定的版本号

当我们需要一个确定的版本号的时候,直接传【本文受版权保护】【本文受版权保护】入这个版本号的具体值,例如:

【原创内容,转载请注明出处】转载请注明出处:www.tangshua【转载请注明来源】【版权所有,侵权必究】ng.net本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。
"dependencies": {
  "jquery" : "1.12.4"
},

这个时候,jquery的值是具体的,确定【版权所有,侵权必究】转载请注明出处:www.tangshuang.net的,执行npm install的时候,这转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】个版本的jquery会被下载到node_【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。modules目录中。

【访问 www.tangshuang.n本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】et 获取更多精彩内容】原创内容,盗版必究。原创内容,盗版必究。

注:为什么需要一个版本号呢?直接下载最新【本文受版权保护】著作权归作者所有,禁止商业用途转载。版的不就可以了吗?实际上在我们下载的所有原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。包中,不同的包所依赖的包不一样,比如你写本文版权归作者所有,未经授权不得转载。【转载请注明来源】的一个组件依赖1.x版本的jquery,原创内容,盗版必究。【作者:唐霜】而另外一个人写的组件依赖2.x版本的jQ【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.netuery,这就需要在自己的包中明确自己的原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】jQuery版本号,在执行npm ins转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】tall时,显示提示信息,让执行者选择最未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。终要安装哪个版本。

本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshu【未经授权禁止转载】【未经授权禁止转载】ang.net【版权所有】唐霜 www.tangshu【转载请注明来源】著作权归作者所有,禁止商业用途转载。ang.net【本文受版权保护】

选择一定范围的版本号

就像上面注释中指出的,如果存在两个组件依【本文首发于唐霜的博客】【转载请注明来源】赖版本不同的时候,就需要作出一个妥协,让本文版权归作者所有,未经授权不得转载。【原创不易,请尊重版权】双方可以兼容。其中的一种方法就是提供一个本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。可选择的范围的版本号,比如,你在你的配置【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。文件中这样写:

原创内容,盗版必究。本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。
"dependencies": {
  "jquery" : ">=1.12.4"
},

我们使用了>=号,也就是说,大于等于1.12.4的所有原创内容,盗版必究。原创内容,盗版必究。版本都可以支持你写的组件。选择范围可以使著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。用:

【访问 www.tangshuang.n【作者:唐霜】【本文受版权保护】et 获取更多精彩内容】转载请注明出处:www.tangshua【作者:唐霜】转载请注明出处:www.tangshuang.netng.net本文版权归作者所有,未经授权不得转载。

>>=<<=

【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。
未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。

没有=哦,如果要=,直接填写具体的版本号就可以本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。了。

【访问 www.tangshuang.n原创内容,盗版必究。【版权所有】唐霜 www.tangshuang.netet 获取更多精彩内容】原创内容,盗版必究。本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。

兼容同一个大版本的不同小版本

如果你打算让你的组件运行在IE8等浏览器【转载请注明来源】【版权所有】唐霜 www.tangshuang.net,就不能使用2.x版本的jQuery,所【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】以你要作出规定。

转载请注明出处:www.tangshua转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】ng.net本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshua【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。ng.net
"dependencies": {
  "jquery" : "^1.12.4"},

它的意思是兼容所有1.x版本的jQuer未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。y(但必须是>=1.12.4版本)著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】

【访问 www.tangshuang.n【作者:唐霜】【未经授权禁止转载】et 获取更多精彩内容】【原创内容,转载请注明出处】【本文受版权保护】

在进行下文的阐述之前,我们先做一个约定,原创内容,盗版必究。【转载请注明来源】我们把一个版本号进行分解:

转载请注明出处:www.tangshua原创内容,盗版必究。原创内容,盗版必究。ng.net【本文受版权保护】

[major version].[rel本文作者:唐霜,转载请注明出处。【作者:唐霜】ease version].[devel【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.netop version]

【转载请注明来源】【本文首发于唐霜的博客】
未经授权,禁止复制转载。【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】

上面是我们约定的把一个版本号的三部分分开本文作者:唐霜,转载请注明出处。【未经授权禁止转载】称呼的方式。下文中我们会用major, 【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。release, develop简称这三转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。个位置上的数字代表的版本号。

【本文首发于唐霜的博客】【本文受版权保护】未经授权,禁止复制转载。

这些兼容性质的版本号表示方式包括:

转载请注明出处:www.tangshua【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。ng.net本文版权归作者所有,未经授权不得转载。

“~1.2.0” :使用~的意思是“约等于”这个版本,说本文作者:唐霜,转载请注明出处。【转载请注明来源】的具体点,就是“>=1.2.0 &【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。amp;& <1.3.0”本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.net 获取更多精彩内容】版本。~会在develop versio【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。n这个版本号上向上兼容,所以使用~,相当著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.net于向上兼容同一个release vers【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ion.
【原创内容,转载请注明出处】 “^1.12.0”【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】; :和~有点像,但是使用^的意思是“兼容【原创内容,转载请注明出处】【未经授权禁止转载】”这个版本的意思,就是”&g未经授权,禁止复制转载。【关注微信公众号:wwwtangshuangnet】t;=1.12.0 &&原创内容,盗版必究。【未经授权禁止转载】 <2.0.0″版本。本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】^会在release version版本【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】号上向上兼容,也就是说向上兼容同一个ma本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。jor version.
【版权所有,侵权必究】 “1.1.x” :它的作用有点像~,但是它并不要求向上【本文首发于唐霜的博客】【访问 www.tangshuang.net 获取更多精彩内容】兼容,意思是”>=1.著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。1.0 && <1未经授权,禁止复制转载。未经授权,禁止复制转载。.2.0″,吃通整个rele【未经授权禁止转载】未经授权,禁止复制转载。ase version。
本文版权归作者所有,未经授权不得转载。 “1.x”:同样的道理,它的作用类似^,但是吃通整未经授权,禁止复制转载。【本文受版权保护】个major version,也就是&#【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】8221;>=1.0.0 &【版权所有,侵权必究】转载请注明出处:www.tangshuang.net;& < 2.0.0【未经授权禁止转载】本文作者:唐霜,转载请注明出处。243;.

【本文首发于唐霜的博客】【本文受版权保护】著作权归作者所有,禁止商业用途转载。
【本文受版权保护】【未经授权禁止转载】

上面的解释基本说清了~, ^, x的作用本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】,但是有一个细节需要注意,就是当一个包出【本文受版权保护】【原创内容,转载请注明出处】于开发状态,还没有major versi【转载请注明来源】【访问 www.tangshuang.net 获取更多精彩内容】on的时候,^的作用向下降一级,相当于和【原创内容,转载请注明出处】【本文受版权保护】~作用一样,比如:

【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。

^0.2.3 相当于 ~0.2.3 也就【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net是 >=0.2.3 &&a著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】mp; < 0.3.0

【本文首发于唐霜的博客】【本文首发于唐霜的博客】
未经授权,禁止复制转载。【原创内容,转载请注明出处】

任何版本都可以

下面的这个方法是不对任何版本有要求:

【本文首发于唐霜的博客】【原创内容,转载请注明出处】
"dependencies": {
  "jquery" : "*"},

为什么可以允许任何版本呢?有两个原因:1【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。.你的组件对版本没有任何要求;2.其他组【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。件有版本要求,你希望最大程度的兼容它。

原创内容,盗版必究。【本文受版权保护】著作权归作者所有,禁止商业用途转载。

最新版本

你希望你所依赖的这个包永远处于最新的版本本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。,可以使用:

原创内容,盗版必究。【原创内容,转载请注明出处】
"dependencies": {
  "jquery" : "lastest"
},

这种情况下,执行npm install的未经授权,禁止复制转载。未经授权,禁止复制转载。时候,会下载最新版本的jquery,但是【关注微信公众号:wwwtangshuangnet】本文版权归作者所有,未经授权不得转载。很有可能与其他组件的依赖产生冲突。

【作者:唐霜】【本文受版权保护】

通过URL确定版本

如果你不知道这个包属于什么版本,或者你希【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】望下载这个包的时候,通过给定的URL去下原创内容,盗版必究。【本文受版权保护】载对应的版本,可以如下:

【原创内容,转载请注明出处】未经授权,禁止复制转载。【本文首发于唐霜的博客】
"dependencies": {
  "jquery" : "https://yourdomain.com/jquery.git"
},

这种使用方法很少出现,一般在npm中都不未经授权,禁止复制转载。【原创不易,请尊重版权】会使用,在bower中才偶尔用到。

【访问 www.tangshuang.n【作者:唐霜】原创内容,盗版必究。et 获取更多精彩内容】著作权归作者所有,禁止商业用途转载。【本文受版权保护】著作权归作者所有,禁止商业用途转载。

2016-07-19 4859

为价值买单,打赏一杯咖啡

本文价值48.59RMB