Yarn 工作区隔离
Yarn workspace isolation
我在使用 yarn 时遇到一些问题,设置为空(当我在 npm 上没有任何版本的库时)。
我有一个结构如下的多模块项目:
root # Yarn workspace
* packages
| * lib1-ws # Angular workspace
| | * projects
| | | * lib1
| | | * package.json
| | * package.json
| |
| * lib2-ws # Angular workspace
| | * projects
| | | * lib2
| | | * package.json # peer depends on lib1
| | * package.json # depends on lib1
| |
| * lib3-ws # Angular workspace
| * projects
| | * lib3
| | * package.json # peer depends on lib1
| * package.json # depends on lib1
|
* package.json
项目 lib2-ws 和 lib3-ws 需要构建 lib1。
我试图发布(安装、构建和发布)lib1,以便我可以发布 lib2 和 lib3.
但是当我 运行 yarn workspace lib1-ws install
或 yarn install
(在 lib1-ws 文件夹中)时,yarn 会尝试安装 lib2-ws 和 lib3-ws 以及,中断安装操作并出现此错误:
error Couldn't find package "lib1@^0.0.1" required by "lib2-ws@0.0.1" on the "npm" registry.
不确定我错过了什么,是否有一些命令可以让我运行忽略这个workspace-aggregator
东西?
谢谢。
看来我搜索的不够,在post这个问题之后,又看了一个question,给了我一个思路
我的工作区对象变成了这样:
"workspaces": {
"packages": [
"packages/*",
"packages/**/projects/*"
]
}
它有效,现在我什至无需构建或发布即可安装。
[更新]
因为一些angular构建的特殊性,在安装所有依赖项之后,空设置必须执行一些命令(因为 yarn workspace 为库创建符号链接):
build lib1 then publish lib1
yarn workspace lib2-ws add lib1@latest
yarn workspace lib3-ws add lib1@latest
build lib2 then publish lib2
build lib3 then publish lib3
完成这些步骤后,我的库已在我的 verdaccio 本地存储库中准备就绪。
我在使用 yarn 时遇到一些问题,设置为空(当我在 npm 上没有任何版本的库时)。
我有一个结构如下的多模块项目:
root # Yarn workspace
* packages
| * lib1-ws # Angular workspace
| | * projects
| | | * lib1
| | | * package.json
| | * package.json
| |
| * lib2-ws # Angular workspace
| | * projects
| | | * lib2
| | | * package.json # peer depends on lib1
| | * package.json # depends on lib1
| |
| * lib3-ws # Angular workspace
| * projects
| | * lib3
| | * package.json # peer depends on lib1
| * package.json # depends on lib1
|
* package.json
项目 lib2-ws 和 lib3-ws 需要构建 lib1。
我试图发布(安装、构建和发布)lib1,以便我可以发布 lib2 和 lib3.
但是当我 运行 yarn workspace lib1-ws install
或 yarn install
(在 lib1-ws 文件夹中)时,yarn 会尝试安装 lib2-ws 和 lib3-ws 以及,中断安装操作并出现此错误:
error Couldn't find package "lib1@^0.0.1" required by "lib2-ws@0.0.1" on the "npm" registry.
不确定我错过了什么,是否有一些命令可以让我运行忽略这个workspace-aggregator
东西?
谢谢。
看来我搜索的不够,在post这个问题之后,又看了一个question,给了我一个思路
我的工作区对象变成了这样:
"workspaces": {
"packages": [
"packages/*",
"packages/**/projects/*"
]
}
它有效,现在我什至无需构建或发布即可安装。
[更新]
因为一些angular构建的特殊性,在安装所有依赖项之后,空设置必须执行一些命令(因为 yarn workspace 为库创建符号链接):
build lib1 then publish lib1
yarn workspace lib2-ws add lib1@latest
yarn workspace lib3-ws add lib1@latest
build lib2 then publish lib2
build lib3 then publish lib3
完成这些步骤后,我的库已在我的 verdaccio 本地存储库中准备就绪。