如何发布具有根package.json依赖项的yarn工作区



我正试图将一个(yarn)工作区从monoreto发布到npm存储库,并在发布的包中包含根项目的依赖项。设置如下:

  • package.json(包含共享依赖项,例如所有工作区都要使用的React的单个版本)
  • library/(这是我想要发布的,为了在monoreto之外使用,发布的package.json应该包含根依赖项和库本地)
  • library/package.json(包含特定于库的依赖项)
  • app1/(使用的应用程序)
  • app1/package.json(包含应用程序本地依赖项,依赖于)
  • app2/(使用的应用程序)
  • app2/package.json(包含应用程序本地依赖项,依赖于)

所以我想做的是cd libraryyarn publish。我期望的是,发布的包将以与我的monorepo本地应用程序完全相同的方式工作。问题是,yarn没有合并monoreo的根package.json的依赖项,并且发布的包的package.json只包含library/package.json本地依赖项。因此,当任何人安装此发布的library包时,它将被破坏,因为它从library/package.json.中未列出的包(依赖项)中导入模块

在运行yarn publish之前,我真的需要编写一个自定义的发布shell脚本,将根package.json的依赖项合并到library/package.json中吗?

唯一可以可靠地放入工作区根目录中的依赖项类型是dev依赖项。

每个包都应该分别在其package.json文件中声明其依赖项。

yarn在安装过程中所做的是,它现在查看所有工作区包中的所有依赖项,以创建一个锁文件,并且不会将多余的依赖项放在包node_modules文件夹中。

如何发布工作区取决于您自己。我通常会编写一个小型Node.js脚本来为每个包运行发布命令行。根据您在工作区中放置的内容,您可能希望独立地版本和/或发布包,这将为您提供灵活性。

相关内容

  • 没有找到相关文章

最新更新