yarn怎么安装workspace的依赖?

我的项目是monorepo结构,如下

packages
    a
        index.js
    b
        index.js
index.js
package.json

根目录的packag.json中设置了workspace

  "workspaces": [
    "packages/*"
  ]

a的name是@abc/a
b的name是@abc/b

b中使用了a的函数, b的package.json

"dependencies": {
    "@abc/a": "workspace:*"
}

此时在项目根目录下执行yarn命令,生成的 node_modules如下

node_modules
    @abc
        a
        b

packages
    b
        node_modules
            // 没有@abc/a的依赖

然后运行b中的index.js导致没有a的引用而报错,是什么原因呢?

yarn的版本是3.2.1

我不用本地的依赖,直接安装其他版本的

yarn add @abc/a@0.0.1

是可以的,但是我希望使用本地的依赖,应该怎么用yarn安装?

阅读 2.5k
2 个回答

yarn 经验不多,之前配合 lerna 用过,体验不好。

推荐 pnpm,我之前做过一期视频讲这个,有兴趣的话可以看下:使用 pnpm workspace 管理 monorepo

@abc/a包的依赖并没有被安装到b包的node_modules目录中是不是因为@abc/a包的依赖已经被安装到了项目根目录的node_modules中,你在b包的package.json文件中添加:


"resolutions": {
  "@abc/a": "workspace:@abc/a"
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题