yarn 工作区应用部署流程

时间:2021-03-12 16:23:25

标签: webpack node-modules yarnpkg yarn-workspaces webpack-module-federation

我们正在使用 yarn 工作区,它按预期进行开发。

这是我们的目录结构

  • 父母
    • 应用
      • 应用1
        • pacakge.json
        • node_modules
        • 源代码
      • App2
        • pacakge.json
        • node_modules
        • 源代码
      • App3
        • pacakge.json
        • node_modules
        • 源代码
      • App4
        • pacakge.json
        • node_modules
        • 源代码
    • 共享
    • 构建
    • package.json
    • node_modules

我们使用 webpack 模块联合来在应用程序之间共享代码,同时还对 Shared 目录中的代码使用 webpack 别名(我们希望一些代码捆绑在每个应用程序中)。

所有这些都适用于开发,因为 yarn 工作区可以很好地管理依赖项。

我们希望单独部署我们的所有应用程序,但我们在解析 Shared 目录的 node_modules 依赖项时遇到问题。 Shared 目录中的依赖项从父级的 node_modules 中选取,而 App1 目录中的依赖项从 App1 中的 node_modules 或 Parent

对于 App1 的部署,我们有以下选项。

解决方案 1。

a) 在父级安装所有依赖项(这将很难知道哪些依赖项属于哪个 App)。这也将强制 App1 构建在运行时服务器上的 Parent 内(对于 ssr,我们不捆绑 node_modules)。

b) 通过取App1 中的package.json 和Parent1 中的package.json 中的依赖项的交集,动态生成Parent 中的package.json >

解决方案 2。

App1Parent 中安装所有依赖项(这将捆绑重复的依赖项,不适用于我们使用 React 的用例)

解决方案 3。

在 App1 中安装所需的依赖项,并在 Parent 中的 node_modules 中为 Shared

中所需的依赖项创建符号链接

这些解决方案似乎都不理想。请建议是否有其他可能的解决方案来解决此问题,如果没有,您在上述共享解决方案中推荐的解决方案是什么。

0 个答案:

没有答案