Open toFrankie opened 1 year ago
示例 👉 toFrankie/yarn-workspaces-demo
查看 workspaces
# 查看 Workspace 信息 $ yarn workspaces info
执行脚本命令
# 在某个 workspace 中执行脚本命令 $ yarn workspace <workspace-name> <command> # 在所有 workspace 中执行脚本命令 $ yarn workspaces run <command>
添加依赖
# 在某个 workspace 中添加依赖 $ yarn workspace <workspace-name> add <package>
*以上为 Yarn 1.x 命令,而 2.x 部分有调整,详看这里。
假设我们项目的 Workspaces 如下,
{ "@workspace/project-1": { "location": "packages/project-1", "workspaceDependencies": ["@workspace/common"], "mismatchedWorkspaceDependencies": [] }, "@workspace/project-2": { "location": "packages/project-2", "workspaceDependencies": [], "mismatchedWorkspaceDependencies": [] }, "@workspace/common": { "location": "packages/common", "workspaceDependencies": [], "mismatchedWorkspaceDependencies": [] } }
可以看到,其中 @workspace/project-1 依赖了 @workspace/common,所以 workspaceDependencies 不为空。反之,没有引用的话就为空数组。
@workspace/project-1
@workspace/common
workspaceDependencies
假设,我们在 project-1 中引用了 common 中的导出模块,如下:
project-1
common
// packages/common/index.js export const config = { name: 'Frankie', age: 20 }
// packages/project-1/index.js import { config } from '@workspace/common' console.log(config)
当 project-1 中查找 @workspace/common 时:
示例 👉 toFrankie/yarn-workspaces-demo
Usage
查看 workspaces
执行脚本命令
添加依赖
*以上为 Yarn 1.x 命令,而 2.x 部分有调整,详看这里。
软链接查找
假设我们项目的 Workspaces 如下,
可以看到,其中
@workspace/project-1
依赖了@workspace/common
,所以workspaceDependencies
不为空。反之,没有引用的话就为空数组。假设,我们在
project-1
中引用了common
中的导出模块,如下:当
project-1
中查找@workspace/common
时:project-1
是否存在对应版本的@workspace/common
,若找不到继续往下;@workspace/common
,若找不到继续往下;@workspace/common
,若找到会拉取下来,若找不到继续往下;References