Angular 纱线工作空间隔离
我在空的设置上遇到了一些问题(当我在npm上没有任何版本的LIB时) 我有一个多模块项目,结构如下:Angular 纱线工作空间隔离,angular,angular-library,yarn-workspaces,Angular,Angular Library,Yarn Workspaces,我在空的设置上遇到了一些问题(当我在npm上没有任何版本的LIB时) 我有一个多模块项目,结构如下: root # Yarn workspace * packages | * lib1-ws # Angular workspace | | * projects | | | * lib1 | | | * package.json | | * package.json | | |
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
项目lib2ws和lib3ws需要构建lib1
我试图发布(安装、构建和发布)lib1,以便发布lib2和lib3
但是,当我运行warn workspace lib1 ws install
或warn install
(在lib1 ws文件夹中)时,warn也会尝试安装lib2 ws和lib3 ws,导致安装操作中断,出现以下错误:
错误:找不到“lib2”所需的包“lib1@^0.0.1”-ws@0.0.1“npm”注册表中的
不确定我遗漏了什么,是否可以运行一些命令来忽略这个工作区聚合器
东西
谢谢。我似乎搜索得不够,在发布了这个问题后,我读了另一篇文章,给了我一个想法 “我的工作空间”对象如下所示:
"workspaces": {
"packages": [
"packages/*",
"packages/**/projects/*"
]
}
现在我可以安装,甚至不需要构建或发布
[更新]
由于某些角度构建的特殊性,在安装所有依赖项之后,空安装程序必须执行某些顺序(因为工作区为LIB创建符号链接):
构建lib1,然后发布lib1
lib2-ws-addlib1@latest
lib3-ws-addlib1@latest
构建lib2,然后发布lib2
构建lib3,然后发布lib3
完成这些步骤后,我的LIB在我的verdaccio本地存储库中准备就绪。嘿,你能只安装每个工作区所需的node_模块吗?我不确定,因为我停止了使用此体系结构的项目的工作。