美文网首页
到底锁不锁 NPM 依赖树

到底锁不锁 NPM 依赖树

作者: 四爷在此 | 来源:发表于2019-12-26 18:24 被阅读0次

首先看个问题 :package-lock.json 需要写进 .gitignore 吗

看两个已有的回答:

image.png image.png

这是个团队的选择

写不写到 ignore 里面,取决于团队。是否需要稳定的codebase, 抑或是相信依赖包项目可以自己fix 一些问题而不会导致依赖混乱。这两者不可兼得

  • 稳定的codebase ,就是 lock 所有依赖包以及依赖包的依赖包版本,精确到 patch 版本号,保证每次项目构建都能跑起来。但是很多第三方库的bug还是bug,可能一直不被 fix,因为 lock 版本了。这种选择需要 开发者 手动升级版本库(按需升级 npm install package@x.x.x),并且commit lock 文件到 repo,供其他团队成员去跟随安装。

  • 抑或是放开版本,随着时间推移,package.json 会拿到相对新的 第三方库,所以不同时间codebase 不同,也许会跑不起来,也许会 fix 掉一些lib 的问题。(自动升级)

lock 版本,实际上包括了 nested dependency,这是关键的。保证exact 版本号,精确的依赖树,这是稳定为王的选择,但是需要每个团队成员手动更新包之后,要确认能跑起来,并且 commit lock.json ,这是比较靠谱的

私有仓库搭建

.npmrc 文件 可用于配制私有仓库

@company:registry=https://xxx.com

Served by any NPM registry server. 可以参考下 verdaccio 这个库

参考资料

package-lock.json 需要写进 .gitignore 吗

what-is-the-role-of-the-package-lock-json

https://juejin.im/post/5cb3fb09e51d456e660d448e

what-is-verdaccio

相关文章

  • 到底锁不锁 NPM 依赖树

    首先看个问题 :package-lock.json 需要写进 .gitignore 吗 看两个已有的回答: 这是个...

  • 锁 锁不锁 锁 什么时候锁 喜欢就锁 不喜欢还锁 旧文锁不锁 锁 新文锁不锁 锁 左锁右锁都是锁 爱国情怀锁 轻松...

  • Java并发编程 - 原子性 可见性 有序性

    原子性 synchironized:不可中断锁,适合竞争不激烈,可读性好,依赖JVM。 Lock:可中断锁,多样化...

  • 锁不锁

    锁不锁? 有时候,莫名其妙地悲从中来。许是因为郑州大水,许是因为疫情卷土重来,又许是因为美国老找麻烦,不能痛痛快快...

  • J.U.C-ReentratLock源码小读(一)

    ReentrantLock存在两种实现的方式,公平锁以及非公平锁.默认为非公平锁。ReentrantLock是依赖...

  • 锁的原理随笔

    synchronized, NSLock, 递归锁, 条件锁 图中锁的性能从高到底依次是:OSSpinLock(自...

  • 可重入读写锁 ReentrantReadWriteLock

    读写锁分为读锁和写锁,多个线程获取读锁不互斥,读写锁、写写锁互斥。 输出

  • JAVA常用的锁机制

    Synchronized 实现依赖JVM,随着jdk版本升级从1.5的重量级锁,1.6的适应自旋、锁消除、锁粗化、...

  • Redis实现分布式锁

    1. 分布式锁分类 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 2. 组件依赖 po...

  • MySQL之:事务

    并发控制 锁粒度: 表级锁 行级锁 锁: 读锁:共享锁,只读不可写,多个读互相不阻塞 写锁:独占锁,排它锁,一个写...

网友评论

      本文标题:到底锁不锁 NPM 依赖树

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