【发布时间】:2021-03-02 02:46:44
【问题描述】:
在工作中,我们有一个相当复杂的堆栈和情况,可以以某种方式描述为以下架构:
情况是:
我们有一个旧的、维护不善的 PHP/AngularJs 项目,它使用 webpack 进行捆绑。 我们还有另一个项目(“Some React Project”),其中包含一些子项目,所有子项目都捆绑到某个包中,然后与旧的 angularjs 项目捆绑在一起。然后 AngularJs 项目使用一些桥接库从这个包中渲染 React 组件。
此外,我们还有另一个现代 React 项目,它是完全隔离的,有自己的 CI/CD 流程(实际上是另一个应用程序)。
现在我们将使用 react 开发一个新模块,它应该在所有三个项目中都使用。
我们首先考虑通过将其发布到 NPM 来维护它,并且对于每次更新,使用 npm install 将其部署到任何项目中。问题是它有太多的开销。测试和部署非常困难。很难维护,因为
我们的一些项目非常古老,简直就是一场噩梦。
还有其他选择吗? 是否有可能以某种方式部署以打包工件,然后在所有项目中自动更新它?
【问题讨论】:
-
您指的开销是多少?使用 npm 似乎是一个相当不错的解决方案。只需使用
npm link进行快速测试 -
unpkg.com 也可以在这里提供帮助
-
最后,您是否建议更新您的公共库应该在您的应用程序中自动更新?这是可行的,不一定可取。
-
开销是由于我们的 CD 和构建过程很慢并且可能不会很快改变这一事实造成的。测试东西真的很痛苦,即使使用 npm 链接。
-
没有库架构/托管解决方案可以加快您的 CI..
标签: angularjs reactjs npm micro-frontend