Monorepo 中 pnpm 安装依赖后子项目找不到公共组件怎么办?

码农炳錦 阅读 6

我在用 pnpm 搭建的 monorepo 项目里,把公共 UI 组件放到了 packages/ui 目录下,其他子应用通过 workspace:* 引用。但运行时一直报模块找不到,本地开发完全跑不起来。

我检查了 package.json 的 dependencies 配置,也执行了 pnpm install,link 看起来是成功的。是不是我的引用方式有问题?

<template>
  <div>
    <CommonButton /> <!-- 这个组件来自 packages/ui -->
  </div>
</template>
我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
萌新.慧娇
先检查一下你的 packages/ui 目录下的 package.json,确保它有一个正确的 name 字段,比如 "name": "ui"。然后在你的子项目中,dependenciesdevDependencies 应该这样写:

"dependencies": {
"ui": "workspace:*"
}


确保你的 pnpm-workspace.yaml 文件配置正确,应该包含类似这样的路径:

packages:
- 'packages/*'


有时候缓存会搞事,试着清除 pnpm 缓存然后再安装依赖:

pnpm store prune
pnpm install


最后,确认你的 IDE 或编辑器是否正确识别了工作区链接,有时候重启编辑器能解决一些奇怪的问题。

调试看看,希望这些步骤能帮你解决问题。
点赞
2026-03-21 23:01