在 nextjs 区域之间共享组件的推荐方式?

Per*_*ack 11 javascript reactjs next.js micro-frontend

上下文: 我正在构建一个带有 next 及其多区域功能的门户。这允许我们让多个 NextJS 应用程序由不同的团队独立运行,但作为一个应用程序。

问题: 我需要确保所有区域中的页眉、导航和页脚保持一致。为此,我希望在一个地方有一个组件,并在各个区域之间共享它。

不幸的是,nextjs 尚未原生支持 webpack 模块联合,因此我们无法从中受益。

我正在寻找方法来了解使用此功能的人们如何处理共享组件。我的研究和想法仅限于一个解决方案:为我想要共享的组件创建 npm 模块,并将其导入到区域中,然后在区域中传递我需要的数据。这是有代价的:对于像页眉和页脚这样的组件,至少,当发布新版本的包时,我们需要确保所有区域都更新为相同的版本。所以......它并不完美,但似乎就是这样。

我尝试查看NextJS GitHub 讨论,但不幸的是,那里的社区似乎不太活跃(已经有人问过这个问题了,你能在那里找到的唯一答案是我的)。

我决定尝试在这里问这个问题,因为观众更广泛,如果有更好的想法,也许你们可以给我一些启发。

leo*_*eog 0

Next.js 通过顶级标志支持 Webpack 5,请查看此文档: https: //nextjs.org/docs/messages/webpack5

另外,请查看这个包,它可以让您实现 Next.js 应用程序的模块联合:https://www.npmjs.com/package/@module-federation/nextjs-mf

最后,请务必检查提供的仪表板以更好地管理模块联合:https://www.npmjs.com/package/@module-federation/dashboard-plugin