npm的lock机制
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm的lock机制相关的知识,希望对你有一定的参考价值。
简述
npm install
命令的输入为package.json
,输出结果为一个格式化的node_modules
树:代表着你定义的项目依赖。在理想情况下,我们希望npm
表现的像一个纯函数一样:相同的package.json
总是生成相同的node_modules
结构树。但是实际上大多数的情况下这是办不到的。以下是导致这种现象的几点原因:
- 不同人使用的npm进程版本如果不同,不同npm版本使用的
package.json
解析和安装算法可能有细微差别。 - 如果
pacakge.json
中记录的依赖包的版本是一个 semver-range的版本号(即是一个版本范围),那么一旦执行npm i
就会导致这个包更新到更新的版本。 - 就算你依赖了一个固定版本的包,比如
A 1.1.1
,但是这个1.1.1
版本的包依赖了一个B^1.1.2
,那么当B包发布了新的版本的时候,重新安装依赖的话B包的版本也会更新。 - 如果你用的不是官方的
registry
源,可能私有的源会有版本突变,也会导致不同的人安装到不同的依赖包版本。
参考
原文:大专栏 npm的lock机制
以上是关于npm的lock机制的主要内容,如果未能解决你的问题,请参考以下文章