什么是package-lock.json(官方文档解释)
2018-03-20 16:04
417 查看
描述
package-lock.json会自动为npm修改
node_modules树或任何操作而生成
package.json。它描述了生成的确切树,以便后续安装能够生成相同的树,而不管中间依赖性更新如何。这个文件旨在被提交到源代码库,并提供各种用途:描述依赖关系树的单一表示,以确保队友,部署和持续集成确保安装完全相同的依赖关系。
为用户提供一个设施,使其能够“前往”以前的状态,
node_modules而不必提交目录本身。
通过可读的源代码控制差异来促进树更改的更大可见性。
并通过允许npm跳过先前安装的软件包的重复元数据分辨率来优化安装过程。
一个关键的细节
package-lock.json是它不能被发布,并且如果在顶层包之外的任何地方发现它将被忽略。它与npm-shrinkwrap.json共享格式,它基本上是相同的文件,但允许发布。除非部署CLI工具或以其他方式使用发布过程来生产产品包,否则不建议这样做。如果两个
package-lock.json和
npm-shrinkwrap.json存在于包的根,
package-lock.json将被完全忽略。
文件格式
名称
包的名称,这是一个包锁。这必须与内容匹配package.json。
版
包的版本,这是一个包锁。这必须与内容匹配package.json。
lockfileVersion
整数版本,1从此文档的版本号开始,在生成此版本时使用其语义
package-lock.json。
packageIntegrity
这是从该创建的子资源完整性值package.json。不
package.json应该进行预处理。子资源完整性字符串可以由模块生成
ssri。
preserveSymlinks
表示安装是在NODE_PRESERVE_SYMLINKS启用环境变量的情况下完成的 。安装程序应该坚持该属性的值与该环境变量相匹配。
依赖
包名称到依赖对象的映射。依赖项对象具有以下属性:版
这是一个说明符,它唯一标识了这个包,并且可以用来获取它的新副本。捆绑的依赖关系:无论来源如何,这是纯粹用于信息目的的版本号。注册表来源:这是一个版本号。(例如
1.2.3)
git sources:这是一个解析commitit的git说明符。(例如
git+https://example.com/foo/bar#115311855adb0789a0466714ed48a1499ffea97e)
http tarball来源:这是tarball的URL。(例如
https://example.com/example-1.3.0.tgz)
本地tarball源码:这是tarball的文件URL。(例如
file:///opt/storage/example-1.3.0.tgz)
本地链接源:这是链接的文件URL。(例如
file:libs/our-module)
廉正
这是此资源的标准子资源完整性。对于捆绑的依赖项,不包括源代码。对于注册表来源,这是
integrity注册表提供的,或者没有提供SHA1的
shasum。
对于git来源,这是我们克隆的特定提交散列。
对于远程tarball源,这是基于文件SHA512的完整性。
对于本地压缩包来源:这是一个基于文件SHA512的完整性字段。
解决
对于捆绑的依赖项,不包括源代码。对于注册表来源,这是相对于注册表URL的tarball路径。如果tarball URL与注册表URL不在同一台服务器上,那么这是一个完整的URL。
捆绑
如果为true,则这是捆绑的依赖关系,并将由父模块进行安装。安装时,此模块将在提取阶段从父模块中提取,而不是作为单独的依赖项安装。开发
如果为true,那么这个依赖是或者是顶层模块的开发依赖,或者是一个依赖的传递依赖。这对于既是顶级开发依赖性又是顶级非开发依赖性的传递依赖性的依赖性是错误的。可选的
如果为true,那么这个依赖是或者是顶层模块的可选依赖,或者是一个可传递的依赖。对于既是顶层可选依赖项又有顶层非可选依赖项的传递依赖项的依赖项,这是错误的。即使在当前平台上可以卸载,也应包含所有可选的依赖关系。依赖
这个依赖关系的依赖关系,就像在顶层一样。参考:https://docs.npmjs.com/files/package-lock.json
相关文章推荐
- packageName和applicationId有什么区别(基于最新官方文档)
- packageName和applicationId有什么区别(基于最新官方文档)
- nodejs npm package.json中文文档
- jQuery官方文档对Ajax中get和post方法的解释
- postman传json串,以及postman官方文档
- Serenity框架官方文档翻译前言(什么是Serenity平台)
- 【cocos2d-js官方文档】二十、moduleConfig.json
- SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】
- 基于gensim的Deep learning with paragraph2vec 官方models.doc2vec文档解释
- postman传json串,以及postman官方文档
- Adapter 官方文档的解释~~~~~~~~~~~~~~~~~好好理解~
- Struts2-Json-Plugin 的使用(翻译自官方文档)
- warning: LF will be replaced by CRLF in package-lock.json. The file will have its original line endi
- package.json 版本号解释
- oracle官方文档对连接和会话的解释
- SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】
- 每天两道oracle笔试题+第六天:1、临时表空间和永久表空间的区别是什么?2、解释Function、Procedure、Package的区别?
- nodejs package.json解释
- Android官方技术文档翻译——ApplicationId 与 PackageName
- 从官方文档解释弱等于