美文网首页让前端飞Web前端之路
关于package-lock, 你知道多少?

关于package-lock, 你知道多少?

作者: 打杂coder | 来源:发表于2020-03-25 10:32 被阅读0次

说到package-lock.json, 大家应该知道当执行npm install之后会产生, 实际上凡是当npm执行涉及到node_modulespackage.json改动的操作时, package-lock.json都会发生改变, 其具体描述了当前依赖树是什么样子及每个依赖锁定的版本

package-lock.json是在npm v5.x.x开始有的, 在平时的项目中,笔者看到很多人都是直接将package-lock.json删除, 重新安装 忽略了其作用,其实它可以帮助我们更好的做好依赖管理,来看看文档里列举的几项优点

  • Describe a single representation of a dependency tree such that teammates, deployments, and continuous integration are guaranteed to install exactly the same dependencies.
  • Provide a facility for users to “time-travel” to previous states of node_modules without having to commit the directory itself.
  • To facilitate greater visibility of tree changes through readable source control diffs.
  • And optimize the installation process by allowing npm to skip repeated metadata resolutions for previously-installed packages.

上面大概的意思是 我们能够通过package-lock.json保证在CI和部署这样的场景下保证依赖的一致性, 同时更好的做好依赖的版本控制, 而且它还可以起到优化依赖安装, 提高安装速度

抛开其他几点不说,我们先说一下CI和部署这样的场景下保证依赖的一致性, 笔者认为这点是package-lock.json给我们带来的最大好处

场景

笔者曾经遇到一个这样的场景, 之前安装过的第三方依赖vue-property-decorator,在本地开发时是正常工作的,但是当部署到线上时, 实际表现不一致, 排查下发现是线上环境与开发环境版本不一致导致的, 最后通过npm ci配合package-lock.json解决了这个问题.

当然你也可以通过写死版本号的方式来做到这样,但是既然有了package-lock.json这样更好的解决方案,为何不用呢?

注意

需要注意的是 当package.json的依赖有更新的版本时, 安装依赖的版本会被更新, 所以为确保在CI和部署这样的场景下保证依赖的一致性,请使用npm ci进行相关依赖, 这个命令会完全按照package-lock.json锁定的版本进行安装

相关参考

npm install与package-lock.json相关issue
npmjs docs
everything-you-wanted-to-know-about-package-lock-json

相关文章

  • 关于package-lock, 你知道多少?

    说到package-lock.json, 大家应该知道当执行npm install之后会产生, 实际上凡是当npm...

  • 关于Block 你知道多少?

    前言 本文只是作为自己对学习的一个总结,如果有错误的地方欢迎各位大神提出 文笔不行,可能会写的有点乱,请见谅! 先...

  • 关于桂皮你知道多少?

    学做早餐以后认识了很多种香料,桂皮是其中一种。很多菜谱里要用到肉桂粉,一直以为就是我们做卤菜里放的桂皮磨成的粉,其...

  • 关于情绪,你知道多少?

  • 关于“情”,你知道多少

    “情”——与生俱来之物,看不见,摸不着,却能够感知。 小时候,我们从嘎嘎坠地,哭声四起时就离不开亲情;成长懂事后,...

  • 关于保险,你知道多少

    对于保险,相信很多人的定位肯定还停留在以前走在大街上,莫名其妙的有人找你搭讪,或者朝你微笑,不用想不是做保险的就是...

  • 关于健身,你知道多少?

    首先声明,我不是健身爱好者,仅仅因为减肥才办了健身卡,呆在健身房半年多了,体重和体型目前还没达到满意的状态,但我仍...

  • 关于疼痛,你知道多少?

    前言: 我们所感受到的痛,并不是刺激本身,而是我们大脑里神经网络处理的结果,是大脑中的现实,并不是外界的现实。 得...

  • 关于中医,你知道多少?

    中医(Traditional Chinese Medicine),一般指以中国汉族劳动人民创造的传统医学为主的医学...

  • 关于中秋你知道多少?

    每年农历的八月十五,都是阖家团圆的好日子,因为这一天是我国传统民俗节日之一,中秋节到来的日子。那么关于中秋节你都知...

网友评论

    本文标题:关于package-lock, 你知道多少?

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