pnpm install 后依赖没装全是怎么回事?

Mc.彦会 阅读 29

我用 pnpm 装依赖,但有些包明明在 package.json 里,install 完却没出现在 node_modules 里,运行时报找不到模块。

比如我装了 lodash,但 import 的时候直接报错。我试过删掉 node_modules 和 pnpm-lock.yaml 重新 install,还是不行。是不是 pnpm 的软链接机制导致的?

我的 pnpm 版本是 8.x,项目结构是普通的 React 应用,没有用 workspace。执行命令就是:

pnpm install
我来解答 赞 6 收藏
二维码
手机扫码查看
2 条解答
新玲
新玲 Lv1
先跑 pnpm install --force 强制重新安装。如果还不行,检查下你的 .npmrc 里有没有奇怪的配置,特别是 shamefully-hoist=true 这种可能会搞事情。

再不行就试试这个组合拳:
rm -rf node_modules pnpm-lock.yaml
pnpm install --shamefully-hoist


妈的 pnpm 8.x 有时候就是会抽风,不行就降级到 7.x 试试。
点赞 1
2026-03-10 04:03
极客新红
八成是peerDependencies的问题,试试这个:
pnpm install --shamefully-hoist

这会把所有依赖都强制提升到顶层node_modules,虽然不太优雅但绝对能解决找不到模块的问题。我每次都这么干。
点赞
2026-03-05 04:01