Skip to main content

npm 机制

npm 安装机制

npm 缓存机制

对于一个依赖包的同一版本进行本地化缓存,是当代依赖包管理工具的一个常见设计。

npm config get cache

会返回缓存路径 /Users/cehou/.npm

缓存数据均放在 _cacache

content-v2 是一些二进制文件,其实就是包资源

index-v5 是 content-v2 的文件索引

npm 依赖管理

现在的 npm 依赖会使用扁平化安装模式

为什么 v1 出现在顶层

这取决于安装顺序,模块的安装顺序可能影响 node_modules 内的文件结构。

即使后续再安装 D@v1.0 依赖 B@v2.0,v2.0 也会跟 C 一样。

这时可以执行 npm dedupe 命令来优化结构,达到这样的效果。Yarn 在安装依赖时会自动执行 dedupe 命令

npm 多源镜像和企业级部署私服原理

npm 中的源(registry),其实就是一个查询服务。以 npmjs.org 为例,它的查询服务网址是 https://registry.npmjs.org/ 。这个网址后面跟上模块名,就会得到一个 JSON 对象,里面是该模块所有版本的信息。比如,访问 https://registry.npmjs.org/react ,就会看到 react 模块所有版本的信息。

现在社区上主要有 3 种工具来搭建 npm 私服:nexus、verdaccio 以及 cnpm。