【问题标题】:Sharing the same redux code between 2 projects在 2 个项目之间共享相同的 redux 代码
【发布时间】:2020-07-09 19:54:06
【问题描述】:

我有一个 react web 应用和 react-native 应用,它们共享几乎相同的 redux 代码(actions/services/reducers)。

是否可以在不同的项目中构建 redux 部分,因此我只需维护一次,然后将其导入到 2 个项目中以使用它?

【问题讨论】:

    标签: reactjs react-native redux node-modules


    【解决方案1】:

    是的,有可能,您需要使用 action reducer 创建节点包并将其导出到 index.js 中。这是一个相当复杂的问题,所以我会告诉你我是怎么做到的。

    我在 web 和移动项目之外使用https://www.npmjs.com/package/create-react-library 创建节点包。在那里你需要放置你的 reducer、actions、const 并且你需要在 index.js 中导出所有的函数和对象。

    完成此操作后,您需要将此节点模块放入您的 Web 应用程序节点模块中。为此,我可以推荐 lerna,它使用自举来做这个魔术,它在项目之间创建符号链接。

    比我在 web 和移动应用程序中分别使用的 createStore,因为还有来自另一个库的另一个 reducer 也在使用 redux,你可以将它们组合起来。

    对于 react-native lerna sym 链接不起作用,因为 Metro 无法在节点模块中加载项目之外的模块来执行此操作,您需要放入 metro.config.js extraNodeModules。您的项目可以使用您的 redux 代码。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 2012-11-11
      • 2014-07-05
      • 1970-01-01
      相关资源
      最近更新 更多