用户登录

在依赖里面记录的包的版本号里面,可能会有一些特别的符号,比如 ^ 或者 ~ 。这个 ^ 表示可以使用版本号里后两位更新的包,也就是小版本还有补丁版本的更新。 ~ 的意思是只能使用补丁版本的更新。如果在版本号里没有特别的符号,就会使用指定版本的包。

比如之前我们在项目里安装了一个叫 express 的包,在 package.json 这个文件里,记录了一下。这个包的版本号是 4.17.0,这是我们在安装的时候指定要安装的一个版本。

这个版本号最前面用了一个 ^ 符号,这样以后如果这个包有小版本或者补丁版本的更新,在用 npm 更新这个包的时候,就会使用这个包的小版本或者补丁版本的更新。

把这个符号换成 ~ ,npm 就只会更新这个包的补丁版本。下面可以试一下,先恢复一下 package.json 还有 package-lock.json 这两个文件。 然后再把 node_modules 删除掉。

在命令行,重新安装一下 express 这个包,设置一下要安装的版本,比如 4.16.0 。 完成以后再回到项目,打开 package.json,你会发现,安装的是 4.16.0 这个版本的 express。

打开 package-lock.json ,搜索一下 express,实际安装的也是 4.16.0 这个版本的 express。

下面可以修改一下 package.json 里的这个 express 包的版本号,把上箭头换成波浪号。这样就只会使用这个包的补丁版本的更新。

在命令行,用 npm update 命令,更新一下 experss ,执行一下这个命令。然后回到项目,你会发现这个 express 的版本号变成了 4.16.4,npm 并没有下载比这个更新版本的 express,比如 4.17.x,因为之前设置的这个版本号里面,用的是波浪号。

在 package-lock.json 文件里检查一下 express 这个包的详细情况,显示项目里现在用的是 4.16.4 这个版本的 express。

更新之后,npm 把 ~ 号换成了 ^,这样下次更新这个包的时候,可以使用这个包的小版本或者补丁版本更新。

回到命令行,重新执行一下 npm update express,完成以后,回到项目,你会发现,这个包的版本号变成了 4.17.1。

在 package-lock.json 文件里再检查一下 express, 显示当前项目使用的是 4.17.1 这个版本的 express 。

包的版本号里的 ^ 与 ~《 Node.js 服务端应用开发:管理包裹 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点