package-lock.json和package.json区别

package.json里面定义的是版本范围(比如^1.0.0),具体跑npm install的时候安的什么版本,要解析后才能决定,这里面定义的依赖关系树,可以称之为逻辑树(logical tree)。

node_modules文件夹下才是npm实际安装的确定版本的东西,这里面的文件夹结构我们可以称之为物理树(physical tree)。

安装过程中有一些去重算法,所以你会发现逻辑树结构和物理树结构不完全一样。

package-lock.json可以理解成对结合了逻辑树和物理树的一个快照(snapshot),里面有明确的各依赖版本号,实际安装的结构,也有逻辑树的结构。

其最大的好处就是能获得可重复的构建(repeatable build),当你在CI(持续集成)上重复build的时候,得到的artifact是一样的,因为依赖的版本都被锁住了。在npm5以后,其内容和npm-shrinkwrap.json一模一样。

这些在npm官网文档都有详细解释。

原文地址:https://www.cnblogs.com/ziyoublog/p/10489168.html

时间: 2024-08-07 12:47:11

package-lock.json和package.json区别的相关文章

package.json与package-lock.json的区别

使用npm5之前的版本,是不会生成package-lock.json这个文件的. npm5以后,包括npm5这个版本,才会生成package-lock.json文件 当使用npm安装包的时候,npm都会生成或者更新package-lock.json文件 npm5以后的版本,在安装包的时候,不需要加 --save(-s) 参数,也会自动在package.json中保存依赖项 当安装包的时候,会自动创建或者更新package-lock.json文件 package-lock.json文件内保存了 n

package.json和package-lock.json的区别

自npm 5.0版本发布以来,npm istall的规则发生了三次变化: 1.npm 5.0.x版本,不管package.json怎么变,npm install时都会根据package-lock.json下载: 2.npm 5.1.0版本后,npm install会无视package-lock.json,下载最新的版本: 3.npm 5.4.2版本后, 如果package.json与package-lock.json不一致,npm install会根据package.json去下载版本,并更新p

[转]nodejs中package.json和package-lock.json文件的功能分析

本文转自:https://blog.csdn.net/u013992330/article/details/81110018 最新版nodejs中,多了一个package-lock.json文件,刚开始对这个文件很是疑惑,后来查了一番资料后,通过验证,终于确定了这两个文件的关系. package.json与package-lock.json文件的作用package.json文件记录你项目中所需要的所有模块.当你执行npm install的时候,node会先从package.json文件中读取所有

关于 package.json 和 package-lock.json 文件说明

package.json 在 Node.js 中,模块是一个库或框架,也是一个 Node.js 项目.Node.js 项目遵循模块化的架构,当我们创建了一个 Node.js 项目,意味着创建了一个模块,这个模块的描述文件,被称为 package.json. package.json 属性说明: name - 包名: version - 包的版本号: description - 包的描述: homepage - 包的官网URL: author - 包的作者,它的值是你在 https://npmjs

JSON与XML的区别比较

(1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML使用DTD(document type definition)文档类型定义来组织数据;?格式统一,跨平台和语言,早已成为业界公认的标准. XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输.XML 提供统一的方法来描述和交换独立于应用程序或供应商

JSON与JS的区别

JSON是什么?(JSON和JavaScript对象有什么区别?)如何把JS对象转化为JSON字符串,又如何把JSON字符串转化为JavaScript对象? JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式, 这意味着在JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包.JSON的规则很简单: 对象是一个无序的“名称/值”对集合.一个对象以“{”(左括号)开始,“}”(

Json和JsonP的区别

http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html Json和JsonP的区别,布布扣,bubuko.com

【基础备忘】JSON与XML的区别比较

转自:http://www.cnblogs.com/SanMaoSpace/p/3139186.html 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准.XML是标准通

JSON与XML的区别比较(转)

原文链接:JSON与XML的区别比较 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准.XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输.XML 提

J-Query开发锦集(0):JSON.parse()和JSON.stringify()区别

项目中我们经常会使用JSON字符串转换,而且很频繁.所以总结如下,很简单的代码. 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JSON.parse()和JSON.stringify()区别</title> 6 <script type="text/javascrip