6

我在空设置时遇到了一些纱线问题(当我在 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 以便我可以发布lib2lib3

但是当我运行yarn workspace lib1-ws installyarn install(在lib1-ws文件夹内)时,yarn 确实会尝试安装lib2-wslib3-ws,并使用以下错误中断安装操作:

错误在“npm”注册表上找不到“lib2-ws@0.0.1”所需的包“lib1@^0.0.1”。

不知道我错过了什么,是否有一些我可以运行的命令来忽略这个workspace-aggregator东西?

谢谢。

4

1 回答 1

1

似乎我没有进行足够的搜索,发布此问题后,我阅读了另一个给我一个想法的问题

我的工作区对象变成了这样:

"workspaces": {
  "packages": [
    "packages/*",
    "packages/**/projects/*"
  ]
}

它可以工作,现在我可以安装,甚至无需构建或发布。

[更新]

由于某些角度构建的特殊性,在安装所有依赖项后,空设置必须执行一些命令(因为 yarn 工作区为库创建符号链接):

  1. build lib1 then publish lib1
  2. yarn workspace lib2-ws add lib1@latest
  3. yarn workspace lib3-ws add lib1@latest
  4. build lib2 then publish lib2
  5. build lib3 then publish lib3

完成这些步骤后,我的库已在我的 verdaccio 本地存储库中准备就绪。

于 2019-02-19T22:02:48.137 回答