【问题标题】:Is it possible to have two front end modules in the same app? If so, how?同一个应用程序中是否可以有两个前端模块?如果是这样,怎么做?
【发布时间】:2021-09-06 03:04:24
【问题描述】:

前言

我有一个gradle项目,书店,项目目录看起来有点像这样:

Bookstore
 - bs-application
 - bs-config
 - bs-controller
 - ...
 - bs-frontend
 - gradle

最近,我们决定暂时集成一个/admin 路由,由另一个模块控制,以便在时机成熟时可以干净地删除它——它还将使用很多额外的库和包用于较新的前端开发。

项目目录现在看起来像这样:(一切都保持独立)

Bookstore
 - bs-application
 - bs-config
 - bs-controller
 - ...
 - bs-frontend
 - gradle
 - admin-config
 - admin-controller
 - admin-sal
 - admin-frontend

可能有用的额外信息

bs-frontend,我有我的Bookstore.js,本质上是,

<BrowserRouter>
  <Switch>
    <Route exact path='/' component={Home}/>
    <Route exact path='/login' component={Login}/>
    <Route exact path='/about' component={About}/>
    ...
    ...
  </Switch>
</BrowserRouter>

我的问题

两者都是基于反应的,当用户点击/admin 时,我希望他们看到admin-frontend 模块下构建的内容。如果这是永久性的,我只需在bs-frontend 中构建一个Admin 组件,再创建一条路线,然后完成它——但我不能在这里这样做。 如何将这些应用集成在一起?

我不确定要提供哪些信息,因为我不确定哪些信息有帮助,所以请告诉我是否/我可以添加哪些信息以提供更多帮助。

【问题讨论】:

    标签: reactjs gradle frontend multi-module


    【解决方案1】:

    据我了解,bs-frontendadmin-frontend 是两个不同的应用程序,希望在它们之间共享组件。
    在这种情况下,我们有 2 个不同的选项。

    1. 发布为包:您可以将admin 组件发布为npm 包,可以作为bs-frontend 中的node_module 使用(我相信您的组织中有npm 私有注册表)。
    2. 您可以尝试使用名为 “Module Federation” 的 webpack 5 功能,该功能将公开组件并可以在您的 bs-frontend 应用程序中使用。

    【讨论】:

      猜你喜欢
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多