npm中package-lock.json的作用:npm install安装时使用
简单理解: XYZ 的格式
对应为: 主版本号.次版本号.修订号,版本号递增规则如下:
主版本号:当你做了不兼容的 API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
假设我们创建了一个新项目,它将使用express。 在运行npm init之后,在撰写本项目时,最新的express版本是4.15.4。 (默认情况下,npm 将安装最新版本)
因此在package.json中,"express":"^ 4.15.4"被添加作为依赖项。 假设明天,express的维护者会发布一个 bug 修复,所以最新版本变成了4.15.5。 然后,如果有人想要为我的项目做贡献,他们会克隆它,然后运行 npm install, 因为4.15.5是一个更高版本的主要版本,这是为他们安装的。 我们都有express依赖,但我们有两个不同的版本。 理论上,它们应该还是兼容的,但是也许这个 bug 会影响我们正在使用的功能,而我们的应用程序在使用Express版本4.15.4与4.15.5进行比较时会产生不同的结果.
而package-lock.json的作用就是用来保证我们的应用程序依赖之间的关系是一致的, 兼容的.
当不存在package-lock.json文件时,使用npm install时,会自动生成这个文件。当存在这个文件时,使用npm install安装,会安装package-lock.json里指定版本的插件,而且相比没有package-lock.json文件时,安装速度会快很多。因为package-lock.json文件里已经存在插件的版本、下载地址、整个node_modules的结构等信息。
当存在package-lock.json文件时,每次npm install安装就会安装package-lock.json里对应插件的版本。这样同一份package-lock.json文件,大家安装的插件版本一致。
如果某个插件版本变更。又不想删除package-lock.json文件,重新生成。方法是:npm install plugin@version,及重新安装这个插件,并指定插件的版本,这样,package.json和package-lock.json会自动更新。当然,也可以直接修改package-lock.json文件,这样npm install时,也会安装修改后的版本。但是如果只修改package.json,不修改package-lock.json,npm install还是会安装package-lock.json里的插件版本。
最新文章
- 【腾讯GAD暑期训练营游戏程序班】游戏中的特效系统作业说明文档
- (2016弱校联盟十一专场10.3) 	A.Best Matched Pair
- HTML的style属性
- 求一字符串最长不重复字符子串的长度【Java 版】
- JS获取IP、MAC和主机名的五种方法
- hdu 1870
- [转]C++智能指针的创建
- FileReader和BufferedReader的区别
- Python笔记2.1
- Jmeter分布式部署- linux
- c/c++ 标准顺序容器 容器的访问,删除 操作
- win7共享打印机如何设置,xp系统如何连接共享打印机。
- RocketMQ 消息存储
- python 下 安装openCV
- Python取得系统进程列表
- Spring Cloud Eureka 服务消费者
- Petapoco 查询 语法
- Github遇到Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
- Android中Log机制详解
- 在spring中常被忽视的注解 @Primary
热门文章
- 用树莓派做3G无线路由器
- PHP面向对象关键词static 、self
- Search Engine —— Regular Expression(Spider)
- 洛谷 P2485 [SDOI2011]计算器 解题报告
- DP———7.导弹拦截(emmm冷静分析一波也不叫DP吧,不过有一种DP的方法写)
- navicat for mysql 2003错误
- Winform 在DataGrid中签入Combo
- Xen虚拟化技术中PV和HVM的区别
- xen 保存快照的实现之 —— device model 状态保存
- 软中断网卡处理&;Linux高性能外部设备处理机制&;SMP