> tree -a -l -L 3
.
|-- .bin
| |-- tsc
| |-- tsc.CMD
| |-- tsc.ps1
| |-- tsserver
| |-- tsserver.CMD
| `-- tsserver.ps1
|-- .modules.yaml
|-- .pnpm
| |-- @babel+helper-string-parser@7.27.1
| | `-- node_modules
| |-- @babel+helper-validator-identifier@7.27.1
| | `-- node_modules
| |-- @babel+parser@7.27.5
| | `-- node_modules
| |-- @babel+types@7.27.3
| | `-- node_modules
| |-- @jridgewell+sourcemap-codec@1.5.0
| | `-- node_modules
| |-- @uni-helper+uni-app-types@1_01b083c299b86a697d0011fc21242d3a
| | `-- node_modules
| |-- @uni-helper+uni-cloud-types_9ec35d2b233c9ff9fff8f648b922d4de
| | `-- node_modules
| |-- @uni-helper+uni-types@1.0.0_6bbf085f910dd4f0bdd4accc9f972373
| | `-- node_modules
| |-- @uni-helper+uni-ui-types@1._cb7a86eaf4983bf9e2f4484ab9e03156
| | `-- node_modules
| |-- @vue+compiler-core@3.5.16
| | `-- node_modules
| |-- @vue+compiler-dom@3.5.16
| | `-- node_modules
| |-- @vue+compiler-sfc@3.5.16
| | `-- node_modules
| |-- @vue+compiler-ssr@3.5.16
| | `-- node_modules
| |-- @vue+reactivity@3.5.16
| | `-- node_modules
| |-- @vue+runtime-core@3.5.16
| | `-- node_modules
| |-- @vue+runtime-dom@3.5.16
| | `-- node_modules
| |-- @vue+server-renderer@3.5.16_vue@3.5.16_typescript@5.8.3_
| | `-- node_modules
| |-- @vue+shared@3.5.16
| | `-- node_modules
| |-- csstype@3.1.3
| | `-- node_modules
| |-- entities@4.5.0
| | `-- node_modules
| |-- estree-walker@2.0.2
| | `-- node_modules
| |-- lock.yaml
| |-- magic-string@0.30.17
| | `-- node_modules
| |-- nanoid@3.3.11
| | `-- node_modules
| |-- node_modules
| | |-- .bin
| | |-- @babel
| | |-- @jridgewell
| | |-- @uni-helper
| | |-- @vue
| | |-- csstype
| | |-- entities
| | |-- estree-walker
| | |-- magic-string
| | |-- nanoid
| | |-- picocolors
| | |-- postcss
| | |-- source-map-js
| | |-- typescript
| | `-- vue
| |-- picocolors@1.1.1
| | `-- node_modules
| |-- postcss@8.5.4
| | `-- node_modules
| |-- source-map-js@1.2.1
| | `-- node_modules
| |-- typescript@5.8.3
| | `-- node_modules
| `-- vue@3.5.16_typescript@5.8.3
| `-- node_modules
|-- .pnpm-workspace-state.json
`-- @uni-helper
`-- uni-types
|-- LICENSE
|-- README.md
|-- dist
|-- node_modules
`-- package.json
78 directories, 12 files
首先我知道.pnpm/ 文件夹的用途。 .pnpm/ 以平铺的形式储存着所有的包,所以每个包都可以在这种命名模式的文件夹中被找到:
.pnpm/<name>@<version>/node_modules/<name>
我们称之为虚拟存储目录。
既然每一个依赖都 平铺了, 比如对于 被平铺的依赖 E:\临时文件\Examplefolder\node_modules\.pnpm\@uni-helper+uni-types@1.0.0_6bbf085f910dd4f0bdd4accc9f972373\node_modules
有一个 子依赖 typescript.
这个子依赖会被平铺到node_modules\.pnpm\typescript@5.8.3\node_modules\typescript
所以 E:\临时文件\Examplefolder\node_modules\.pnpm\node_modules
.pnpm下的node_modules的文件夹存在的意义是什么?