【问题标题】:Separating intranet CRUD/admin panel from production app将 Intranet CRUD/管理面板与生产应用程序分离
【发布时间】:2016-08-12 15:46:13
【问题描述】:

使用 redux 开发一个中等复杂的 React 应用程序。我们目前有一个我们在生产中满意的版本,并且正在为本地运行的应用程序版本开发一个管理区域。这个本地版本将具有一些基本的 CRUD 功能。我目前正在评估将 CRUD 内容排除在生产构建之外的最佳方法。

我最满意的是拥有一个具有sed 的 Makefile 删除我在生产构建中不想要的内容。例如任何管理路由、reducer 添加等。但我觉得有更好的方法。可能是去年这个时候我在一个样板中遇到的东西,因为我倒了几十个来感受一下事情是如何运作的。也许它在 webpack 配置中?我不记得了。


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

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

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

目前我不确定如何继续


感觉我的选择有限

  1. 创建两个分支。并小心翼翼地将任何新的生产功能合并到我的本地分支中(远非理想)

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

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

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

【问题讨论】:

    标签: javascript reactjs webpack redux


    【解决方案1】:

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

    另一种选择(如果您希望将其分离得更远)是使用 git 子模块(假设您使用的是 git 而不是其他 vcs),您将有两个存储库,每个应用程序一个,共享一些核心代码(第三个仓库,作为子模块从两个“app”仓库链接)。

    【讨论】:

    • 我注意到我从未接受过这个问题的答案。虽然我没有使用您的方法,但感谢您尝试回答我的问题。我选择了我最舒服的东西。我有一个 Make 文件,它可以根据需要使用一些 shell 脚本来配置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2022-07-13
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多