在空的设置下(当我在npm上没有任何版本的lib时),纱线有一些问题。
我有一个结构化的波纹管多模块项目:
let obj1 = null;
let obj2 = {};
let obj3 = {name: ""}
let obj4 = {name: "John"}
const safeReadObj = (obj, key) => obj && obj[key] || "N/A";
// Test cases:
console.log(safeReadObj(obj1, "name"));
console.log(safeReadObj(obj2, "name"));
console.log(safeReadObj(obj3, "name"));
console.log(safeReadObj(obj4, "name"));
项目lib2-ws和lib3-ws需要构建lib1。
我试图发布(安装,构建和发布)lib1,以便可以发布 lib2 和 lib3 。
但是,当我运行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
或yarn workspace lib1-ws install
(在 lib1-ws 文件夹中)时,yarn会尝试安装 lib2-ws 和< strong> lib3-ws ,也会由于以下错误而中断安装操作:
错误在“ npm”注册表上找不到“ lib2-ws@0.0.1”所需的软件包“ lib1@^0.0.1”。
不确定我缺少什么,是否可以运行一些命令来忽略此yarn install
事情?
谢谢。
答案 0 :(得分:0)
似乎我没有进行足够的搜索,在发布了这个问题之后,我又读了另一个question,这给了我一个主意。
我的工作区对象变成这样:
"workspaces": {
"packages": [
"packages/*",
"packages/**/projects/*"
]
}
它有效,现在我什至无需构建或发布就可以安装。
[更新]
由于某些角度构建特性,在安装所有依赖项之后,空安装程序必须执行某些命令(因为yarn工作区为lib创建了符号链接):
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本地存储库中准备好了。