1.0.2 • Published 7 months ago

npa-core v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

NPM / YARN

npm和yarn的算法是一致的, 即扁平化。 当a包依赖一个b包时, 会从顶层node_modules开始, 一直到a包的node_modules目录, 找到第一个不存在冲突的目录, 安装在此。

但yarn有一个区别是, yarn 会在用户本地缓存已下载过的依赖包,优先会从缓存中读取依赖包,只有本地缓存不存在的情况才会采取远端请求的方式。

PNPM

pnpm的依赖关系是显式的文件软链接, 这可以直接读取得到。

pnpm中所有第三方依赖包都保存到了node_modules/.pnpm中, 每个目录直接对应一个依赖包。 依赖包的目录结构非常固定, 这给我们带来了方便, 格式为.pnpm/packageKey/node_modules 其中node_modules里面分为两种。 一种是该包的数据。 一种是该包依赖的其它包的文件链接。


pnpm的monorepo原理与npm/yarn非常不同。 npm/yarn的原理是将用文件链接, 将子包链接到根目录的node_modules中, 所以就跟普通安装的依赖包使用无异, 幽灵依赖的缺陷都继承了。

而pnpm

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago