我们正在使用纱线工作区,它可以按预期进行开发。
这是我们的目录结构
- 家长
- 应用
- 应用程序1
- 包装.json
- 节点模块
- 源代码
- 应用程序2
- 包装.json
- 节点模块
- 源代码
- 应用程序3
- 包装.json
- 节点模块
- 源代码
- 应用程序4
- 包装.json
- 节点模块
- 源代码
- 应用程序1
- 共享
- 建造
- 包.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。
在App1和Parent中安装所有依赖项(这将捆绑重复的依赖项,并且不适用于我们使用 React 的用例)
解决方案 3。
在 App1 中安装所需的依赖项,并在Parent的node_modules 中为 Shared 中所需的依赖项创建一个符号链接
这些解决方案似乎都不理想。请建议是否有其他可能的解决方案来解决此问题,如果没有,您在上述共享解决方案中推荐的解决方案是什么。