欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > yarn workspace使用指南

yarn workspace使用指南

2025/5/14 17:12:17 来源:https://blog.csdn.net/weixin_44066182/article/details/147900288  浏览:    关键词:yarn workspace使用指南

作用

Yarn workspace 是 Yarn 包管理工具中的一个功能,主要用于管理多包项目(monorepo)。它的主要作用如下:

  1. 支持多包结构:允许在一个仓库中管理多个独立的包或项目。
  2. 项目间依赖管理:方便地在不同包之间添加依赖,无需发布到npm。
  3. 统一依赖管理:所有包共享同一 yarn.lock,确保依赖版本一致。
  4. 独立开发环境:每个包可以独立运行命令,如安装依赖或构建。
  5. 环境隔离:避免不同包间的依赖冲突。
  6. 版本控制:在单个仓库中管理所有包的版本。

使用方法

  1. 创建workspace,项目名为workspace-root,然后生成package.json
mkdir workspace-root
cd workspace-root
yarn init -y //初始化项目,生成package.json
  1. workspace项目必须声明私有,避免被发布
{// ...config"private": true,
}
  1. 新建packages目录,用于存放项目

  1. 在packages目录下创建两个项目,并生成package.json,如two、one

  1. 在two和one项目的package.json文件中声明name属性,该属性值即为workspace的名称,如:
{"name": "one", // workspace的名称"version": "1.0.0","main": "index.js","license": "MIT",
}
  1. 在workspace-root目录下的package.js中声明哪些项目是workspace,"workspaces":["packages/*"]表示packages目录下的所有项目都是workspace
{"name": "workspace-root","version": "1.0.0","main": "index.js","license": "MIT","private": true,"workspaces": ["packages/*"]
}

指令

  1. yarn install:安装所有依赖,在workspace-root目录下和one/two目录下执行作用是一致的
  2. yarn workspace [workspace名称(package.json中的name)] add [依赖名称]:给项目添加依赖
yarn workspace one add dayjs
  1. yarn workspace [workspace名称(package.json中的name)] remove [依赖名称]:移除项目依赖
yarn workspace one remove dayjs
  1. yarn workspaces run <command>:在每个workspace下执行
yarn workspaces run dev
  1. yarn workspaces info [--json]:显示当前各workspace之间的依赖关系

注意事项

  1. 某个workspace不需要受yarn workspace管理,怎么办?

在workspace目录下添加.yarnrc文件, 并在文件中添加禁用指令

workspaces-experimental false

  1. 如果多个项目中依赖项目但版本不同时,怎么办?

注意:一般情况下two、one目录下并没有node_modules目录,如果two、one中依赖的版本不同时才可能会有

方式一:workspace-root中的node_modules下载的是dayjs@1.11.12,在one中使用的是dayjs@1.11.13,two使用的是dayjs@1.11.12

# one 项目
yarn workspace one add dayjs@^1.11.13
# two 项目
yarn workspace two add dayjs@^1.11.12

方式二:workspace-root中的node_modules下载的是dayjs@1.11.12,在one中使用的是在one/node_modules目录下下载的dayjs@1.11.13,two使用的是dayjs@1.11.12(workspace-root/node_modules):

# one 项目
yarn workspace one add dayjs@1.11.13
# two 项目
yarn workspace two add dayjs@1.11.12

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词