typescript 使用lerna创建一个yarn工作区,并在company命名空间下发布2个包

2ic8powd  于 2023-10-22  发布在  TypeScript
关注(0)|答案(1)|浏览(146)

给出了一个使用yarn workspace和lerna的repo。这个工作区有两个包-主包和子包。主包引用子包。我想分叉它,并以我的组织名称在npm上发布一个补丁(例如:@myorg/main-pack和@myorg/sub-pack)。

  • 我想避免我的@myorg/main-pack引用官方子包。
  • 我想尽量减少代码更改,例如,我希望main-pack中的typescript文件仍然导入sub-pack,并避免将它们更改为@myorg/sub-pack。

我觉得我错过了一些东西,使用yarn workspace修补和发布多个包应该很容易。也许是和Lerna的事或者是特别的出版步骤?
我尝试了npm别名"sub-pack": "npm:@myorg/sub-pack@*",但它似乎与yarn workspace冲突,yarn workspace通常期望"sub-pack": "*"作为workspace引用。

ldfqzlk8

ldfqzlk81#

你应该尝试使用Yarn/pnpm workspace:*协议,当使用时,它将强制使用本地代码,而不是尝试从npm获取它(这是*会做的)。我很确定那个协议是为了解决和你类似的问题而发明的。例如,看看pnpm workspace:协议文档。我刚刚写了2分钟前在这个其他SO question类似的答案,问题是不同的,但答案是相似的。Lerna和Lerna-Lite的两个新版本也支持这个协议(如果你不使用Nx,后者是首选,但是如果你使用Nx,那么最好坚持使用Lerna)

相关问题