Everythimg 搜 Pnpm的 链接文件 搜索不到是什么原因?

image.png

node_modules.pnpm\@emotion+react@11.14.0_@types+react@19.2.7_react@19.2.0\node_modules\@emotion\react\dist

项目的pnpm 目录下有很多 链接文件.
发现 Everythimg 搜这些文件都搜索不到.
image.png

但是Listary 就能搜索到
image.png
这是为什么?

阅读 797
3 个回答

它这个应该是基于真实的物理路径创建的索引吧.
我试了下,好像只要是符号链接的目录, 就只能搜索到这个目录,再往下就搜索不到了.
pnpm刚好是基于符号链接构建依赖树的, 你用npm/yarn装依赖应该就又能搜到了

其实原因很简单,就是俩工具对符号链接的处理不一样。Everything 只认真实物理路径,只能搜到 pnpm 符号链接的顶层文件夹,钻不进深层找具体文件;但 Listary 能穿透符号链接目录,所以能搜到那些依赖文件。要是换 npm/yarn 装依赖,Everything 就能正常搜了,因为它们是直接存物理文件,不是靠链接。

原因在于 PNPM 的 node_modules.pnpm 目录下的文件大多是 符号链接(symlink)或硬链接,而 Everything 默认不会索引这些重解析点(reparse points),所以搜索不到。而 Listary 使用 Windows Search API,可以动态解析这些链接,因此能找到。

核心区别:

• Everything:基于 NTFS MFT 索引,不跟随符号链接,除非开启“包含重解析点”。
• Listary:动态解析符号链接,能显示真实文件。

解决方法:
  1. 在 Everything 中开启:
    工具 → 选项 → 索引 → NTFS → 勾选“包含重解析点”
  2. 把 PNPM 的全局仓库路径(如 C:\Users\<用户名>\AppData\Local\pnpm\store)加入索引。
推荐问题