美文网首页
npm-lock.json vs npm-shrinkwrap.

npm-lock.json vs npm-shrinkwrap.

作者: 张培_ | 来源:发表于2019-03-31 13:34 被阅读0次

本文针对: npm:6.9.0/node:v8.11.4

区别

是否publish

  • 当你需要发布一个自己的package到register

    • 如果你的package中包含npm-shrinkwrap.json,那么这个文件会随着包一起发布到register
    • 如果的package中包含npm-lock.json,那么这个文件一定不会随着一起发布到register

    并且你可以通过npm pack指令查看你即将要发布的包中包含的内容。

安装

  • 如果你的project中同时存在npm-lock.json and npm-shrinkwrap.json, 那么install会完全忽视npm-lock.json, 而完全根据npm-shrinkwrap.json 安装

生成

  • 当你执行npm install会自动生成npm-lock.json (npm 5+)
  • npm-shrinkwrap.json 只会在执行npm shrinkwrap才会被安装

内容

两种文件内容完全一致:

  • version: 写明depedency的一个确定的版本
  • resolved: 写明depedency的安装地址
  • integrity: 根据包中的内容生成的hash值,它使用 Subresource Integrity 来验证已安装的软件包是否被改动过,换句话来说,验证包是否已失效。

这三个参数可以确定一个唯一的depedency

  • require:除最外层的 requires 属性为 true 以外, 其他层的 requires 属性都对应着这个包的 package.json 里记录的自己的依赖项
  • dependency: dependencies 层次结构与文件系统中 node_modules 的文件夹层次结构是完全对照的,这个字段可以理解成是node_module的快照

影响因素(lock和shrink相同)

  • 因为lock文件一定是node_module的快照,因此任何会updatenode_module的行为,都会对lock文件产生影响,比如npm install newPackage,npm install oldPackage@newVersion, npm update, npm remove
summary:只要node_module发生变化必然会导致lock文件发生变化

如何产生

  • package-lock.json: 执行npm install 默认会产生一个这个文件
  • npm-shrinkwrap.json: 执行npm shrink 会产生一个这个文件

假设:

  • 目录中已经存在package-lock.json,此时再次执行npm shrink

    package-lock.json文件消失,只留下npm-shrinkwrap.json

  • 目录中已经存在npm-shrinkwrap.json,此时再次执行npm install

    没有办法再次产生package-lock.json

相关文章

  • npm-lock.json vs npm-shrinkwrap.

    本文针对: npm:6.9.0/node:v8.11.4 区别 是否publish 当你需要发布一个自己的pack...

  • 【五行论水】

    壬vs癸阳vs阴动vs静白vs黑勇vs谋狂vs逸涛vs渗敏vs睿急vs缓响vs寂奔vs驻吐vs纳 。。。。。。 水...

  • 【土为何物】

    戊vs己阳vs阴厚vs薄重vs轻凸vs平实vs虚深vs浅伟vs卑藏vs盖信vs疑稳vs浮强vs弱 土代表环境环境寓...

  • 【五行论木】

    甲vs乙 阳vs阴 直vs曲 纵vs横 高vs宽 挺vs垂 衝vs铺 优vs良 通vs达 干vs枝 上vs下 粗v...

  • 【五行论火】

    丙vs丁 阳vs阴 散vs聚 泛vs专 远vs近 猛vs文 爆vs缩 快vs慢 扩vs定 周vs点 外vs里 宏v...

  • 【五行论金】

    庚vs辛 阳vs阴 刚vs柔 锋vs锐 劈vs戳 悍vs险 确vs准 决vs绝 边vs端 理vs据 冷vs润 攻v...

  • vscode 免费视频教程

    VS Code教程 VS Code简介 VS Code 界面 VS Code各种视图 VS Code主题 VS C...

  • VS Code导学视频,教你如何入门!

    VS Code教程 VS Code简介 VS Code 界面 VS Code各种视图 VS Code主题 VS C...

  • 第3天|生命只有一种绝对

    对vs错,男vs女,左vs右,好vs坏,黑vs白,简单vs复杂,快乐vs难过……小时候我们以为这些都是绝对的,直到...

  • 信念

    厚重VS虚浮 坚持VS放弃 真难VS畏难 不信VS相信 定力VS裹挟 邪路VS正道 信念与行动:为者,则难者亦易矣

网友评论

      本文标题:npm-lock.json vs npm-shrinkwrap.

      本文链接:https://www.haomeiwen.com/subject/icpybqtx.html