pnpm 安装依赖后为什么有些包在 node_modules 里找不到?

百里清梅 阅读 151

我最近从 yarn 切到 pnpm,但发现项目跑不起来,提示找不到某些依赖。比如我明明装了 lodash,但在 node_modules 里直接搜不到这个文件夹,控制台报错:

Error: Cannot find module 'lodash'

我查了 pnpm 的文档,知道它用的是符号链接和硬链接,但实际开发中怎么调试这种问题?是不是要改什么配置?

我来解答 赞 14 收藏
二维码
手机扫码查看
1 条解答
爱学习的芸硕
pnpm 用的不是传统那种平铺结构,lodash 实际在 .pnpm/node_modules/ 里,node_modules/lodash 只是个符号链接,你直接翻文件夹当然找不到。

项目跑不起来大概率是 peer dependencies 冲突了,在项目根目录的 .npmrc 里加一行:

public-hoist-pattern[]=*


然后删掉 node_modules 和 pnpm-lock.yaml,重新 pnpm install

如果还不行,把 strict-peer-dependencies=false 也加上,这玩意儿默认 true 太坑了。
点赞
2026-03-17 23:00