如何解决使用插件式程序包扩展电子应用程序开发的体系结构
背景:
我们正在开发一种电子应用,随着时间的流逝,它会越来越大。我们已经将Web应用程序(渲染器进程)和本机包装器进程(主进程)划分为单独的项目,这是一个不错的开始,但还不够-
我们有不同的团队在同一个电子基础设施上工作,并且希望将代码分成单独的存储库,每个存储库由不同的团队管理,并且所有这些代码库都已加载到电子的主要基础结构项目中。
问题:
首先,这听起来很简单-为每个电子模块创建一个npm软件包(每个团队一个),并将这些软件包导入到主电子项目中,该项目将管理所有软件包并构建最终的电子应用程序。问题在于那些电子包装应该熟悉“电子”包装,并且应该以某种方式使用该包装的相同版本。由于跟踪主要电子项目使用的软件包并在每次我们要增加版本时手动在每个模块中对其进行更新对于扩大应用都是不利的,因此我们希望能够以更好的方式进行同步。
(错误)解决方案:
将电子实例从主电子应用传递到内部包装(在init
函数中)并使用它,而不使用已安装的“电子”包装。它解决了同步电子版本的问题,但是当主应用更新电子版本时,程序包将不熟悉它,并且在不兼容的情况下可能会损坏。
听起来,无论我做什么,我都无法解开项目,它们必须(手动)进行沟通才能正常工作。我缺少任何可以帮助我将一个电子项目拆分为多个电子项目的体系结构设计方法吗?
解决方法
我们创建了5
程序包,其中包含常见的依赖项和配置(@our-company/our-product-common
,electron
,lint规则,全局常量)。如果我们要更新电子或打字稿,请使用typescript
软件包更新版本。
或者您可以创建*-common
程序包,仅重新导出@our-company/our-product-electron
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。