PNPM总结

1 pnpm原理

pnpm会在node_modules下面直接依赖我们项目所依赖的包比如:

复制代码
{
  
  "description": "",
  "devDependencies": {
    "@types/node": "^20.19.10",
    "electron": "^37.2.6",
    "typescript": "^5.9.2"
  },
}

子依赖打平放在node_modules的.pnpm下面

在子依赖中可以看到一些符号链接。

pnpm的符号连接指向

复制代码
Macbook

/Users/用户名/Library/pnpm/store

解决幽灵依赖。

通过全局 store 和硬链接,相同的包只存储一次,不同版本通过不同的哈希值区分。

也可以自己设置store路径

复制代码
   # 查看当前 store 路径
   pnpm store path
   
   # 设置自定义 store 路径
   pnpm config set store-dir /path/to/custom/store

/Users/用户名/Library/pnpm/store/v10/
├── files/           # 内容寻址存储
│   ├── 00/         # 按哈希值分组的文件
│   ├── 01/
│   ├── 02/
│   └── ...
├── index/          # 包的索引信息
└── tmp/            # 临时文件