我们有一个与Webpack4捆绑在一起的大型React应用程序。它由几个较小的应用程序和服务组成,每个应用程序和服务都隔离在其自己的URL前缀后面。这些服务共享一个通用布局,几个React组件和一个主菜单。
https://largeapp.test/service1
https://largeapp.test/service2
目前,每个服务的源代码都位于src / services主目录下的自己的目录中:
largeapp/
package.json
webpack.config.js
src/
services/
service1/
...
service2/
...
我们想重构代码以npm软件包的形式管理主应用程序和每个服务,每个服务都有自己的git repo:
@largeapp/main/
.git/
package.json
webpack.config.js
src/
@largeapp/service1/
.git/
package.json
webpack.config.js
src/
@largeapp/service2/
.git/
package.json
webpack.config.js
src/
每个包都将导出一些元数据(名称,描述,图标,URL键),因此我们可以构建一个仪表板,其中包含指向每个服务的链接以及一个或多个React组件:
export {
metadata,
Main,
Sidebar
}
我们没有以这种方式组织如此大的应用程序的经验,因此我们有一些疑问:
共享软件包:我们所有的软件包都应该共享相同版本的React和其他一些软件包。使用外部工具是最好的方法吗?
注意相关软件包中的更改。在开发时,我们希望在发生某些更改时热重新加载应用程序,无论更改是在主程序包中还是在服务程序包中发生。也许有一些基于使用npm link
来打包文件夹的方法?两个webpack监视进程以某种方式相关?