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