复现:
- 随便进一个 package
pnpm install vue
- 打开
node_modules/vue/package.json
- 尝试跳转
@vue/runtime-dom 失败
原因:
project/node_modules/vue 是一个软连接,链接到 project/node_modules/.pnpm/vue@3.2.45/node_modules/vue,在其真实的位置目录结构是可以加载到 @vue/runtime-dom 的。

解决方法:在解析一个 package.json 的依赖时,如果它是一个符号链接,应该先取到它在磁盘上的真实地址,再相对于真实的文件地址做解析
最近发现一个有意思的包,这个项目的包路径解析好像是自己写的,我感觉可以直接用这个包:https://www.npmjs.com/package/resolve
复现:
pnpm install vuenode_modules/vue/package.json@vue/runtime-dom失败原因:
project/node_modules/vue是一个软连接,链接到project/node_modules/.pnpm/vue@3.2.45/node_modules/vue,在其真实的位置目录结构是可以加载到@vue/runtime-dom的。解决方法:在解析一个 package.json 的依赖时,如果它是一个符号链接,应该先取到它在磁盘上的真实地址,再相对于真实的文件地址做解析
最近发现一个有意思的包,这个项目的包路径解析好像是自己写的,我感觉可以直接用这个包:https://www.npmjs.com/package/resolve