0

我们正在使用纱线工作区,它可以按预期进行开发。

这是我们的目录结构

  • 家长
    • 应用
      • 应用程序1
        • 包装.json
        • 节点模块
        • 源代码
      • 应用程序2
        • 包装.json
        • 节点模块
        • 源代码
      • 应用程序3
        • 包装.json
        • 节点模块
        • 源代码
      • 应用程序4
        • 包装.json
        • 节点模块
        • 源代码
    • 共享
    • 建造
    • 包.json
    • 节点模块

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

所有这些都非常适合开发,因为 yarn 工作区可以很好地管理依赖关系。

我们希望单独部署我们所有的应用程序,但我们在解决共享目录的 node_modules 依赖项时遇到了麻烦。Shared目录中的依赖项是从 Parent 级别的 node_modules 中选择的,而 App1 目录中的依赖项是从App1中的 node_modules或Parent中的 node_modules 中选择的

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

解决方案 1。

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

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

解决方案 2。

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

解决方案 3。

在 App1 中安装所需的依赖项,并在Parent的node_modules 中为 Shared 中所需的依赖项创建一个符号链接

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

4

0 回答 0