跨多个 React 应用共享 redux 服务层

Posted

技术标签:

【中文标题】跨多个 React 应用共享 redux 服务层【英文标题】:Sharing redux service layer across multiple react apps 【发布时间】:2018-03-16 13:49:08 【问题描述】:

我的团队正在构建 2 个应用程序:

    一个成熟的 React Web 应用程序(无响应) 使用 PhoneGap 封装的移动应用程序

您可以想象,两者的 UI 完全不同。但是,服务层完全一样。换句话说,它们共享动作、动作创建者和减速器。

对于shareability,我已将服务提取到一个单独的 npm 包中,该包具有一组单独的单元测试和一个构建系统。我只是直接从包中导入必要的操作/减速器。

这种方法存在一定的问题:

    必须跨不同的存储库(有时还有单独的分支)工作,这使得快速工作变得非常困难 在通过 npm 使用之前,需要构建并推送到 github 以让 babel/webpack 构建更改 从 UI 工作时无法调试服务层(我猜我可以将源映射添加到分发文件中?)

但是,我想知道你们中是否有人有更好的解决方案/方法来解决这个问题。

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用npm link 工作,这解决了第 1 点和第 2 点,对于第 3 点您所说的解决方案,将源映射包含到分发文件中。

这里有 npm 链接文档:npm link docs

基本上,您将在 shared 存储库中执行 npm link 并在使用者内部使用 npm link <name>,这将符号链接 node_modules 中的文件夹。

【讨论】:

以上是关于跨多个 React 应用共享 redux 服务层的主要内容,如果未能解决你的问题,请参考以下文章

5. redux

5. redux

5. redux

XState react - 跨多个组件共享机器实例

Redux

我可以在 React 中跨多个树共享一个组件实例吗?