将Intranet CRUD / admin面板与生产应用

时间:2016-08-12 15:46:13

标签: javascript reactjs webpack redux

使用redux处理中等复杂的反应应用程序。我们目前有一个我们在生产中满意的版本,并正在为本地运行的应用程序版本的管理区域工作。此本地版本将具有一些基本的CRUD功能。我目前正在评估将CRUD内容保留在生产版本之外的最佳方法。

我最熟悉的是只有一个Makefile,sed删除了我在生产版本中不需要的东西。例如任何管理路线,减速机添加等。但我觉得有更好的方法。可能是我去年这个时候在锅炉盘中遇到​​的东西,因为我倾注了几十个以了解事情是如何运作的。也许是在webpack配置中?我不记得了。

让我们举一个简化的例子。

  1. 在redux中我有一个文档模块。

  2. 这个模块我可以CRUD一个文件。但在制作中我只想阅读信息。要减少包大小,我不需要创建,更新或删除。只需要在本地Intranet上运行的版本中发生。

  3. 此时我不确定如何继续

    我的选择感觉有限

    1. 创建两个分支。并精心将任何新的制作功能合并到我当地的分支机构(远非理想的)

    2. 创建两个文档模块(document_readdocument_admin),仅用于阅读,另一个用于其余模块。

      • 有一个webpack配置,在构建时忽略此模块
      • 有第二个combineReducers函数运行在document_admin模块中添加的本地版本
      • 有条件地在文档容器中添加admin组件
      • 有第二个路由(react-router)文件||有条件地添加与document_admin相关的任何路由,或者可能作为未来模块,允许管理员在提交到生产之前审查用户完成的工作。
    3. ??

    4. 在这一点上,两个似乎是明显的赢家。我不禁感到我错过了一个非常明显的解决方案

1 个答案:

答案 0 :(得分:1)

我会说两个不同的webpack配置,只为每个应用程序打包必要的资源。

另一种选择(如果你想让它更加分离)将是使用git子模块(可能你是使用git而不是其他vcs),你有两个存储库,每个应用程序一个,共享一些核心代码(第三个repo,从“app”存储库链接为子模块)。