我们目前正在研究 Salesforce DX 项目的架构。我们拥有大量现有定制的代码库,并计划将它们变成多个解锁包,以使所有内容更加模块化等。当然,并非所有内容都需要打包,某些功能将保持未打包状态。
问题是:这应该是单个项目(内部包含多个包目录和单个 Git 存储库)还是每个功能的项目更可取(多个 Git 存储库)?你将如何管理包和未打包的东西之间的依赖关系?
您能否提一些建议?
我们目前正在研究 Salesforce DX 项目的架构。我们拥有大量现有定制的代码库,并计划将它们变成多个解锁包,以使所有内容更加模块化等。当然,并非所有内容都需要打包,某些功能将保持未打包状态。
问题是:这应该是单个项目(内部包含多个包目录和单个 Git 存储库)还是每个功能的项目更可取(多个 Git 存储库)?你将如何管理包和未打包的东西之间的依赖关系?
您能否提一些建议?
Salesforce cli 可以在任何地方运行。但是某些命令需要在 Salesforce 项目目录的上下文中执行。这包括执行打包、将代码部署到组织的所有命令,所有这些都会驱动您可能使用的任何 CI/CD 流程。
正如我想象的那样,尝试将 CI 流程安排在多个项目中,每个项目都有自己的项目文件夹,这似乎会增加不必要的复杂性。
从根本上说,解锁包旨在共享单个 Salesforce 项目。因此,除非您找到其他原因,否则朝着这个方向前进是正确的举措。
Salesforce 开发人员推广团队维护一个示例应用程序,该应用程序使用称为“Easy Spaces”的多包模型构建。我建议查看sfdx-package.json
那里的文件以了解如何安排和识别包依赖项。
您可能能够推断出一些方法来相应地组织项目中的代码。
如何做出所有这些决定对于一个单一的答案来说太过分了。但这个 youtube视频是一位客户开发团队负责人,分享了他们如何重新构建代码库以使用未锁定的包。
如果您在开始时遇到任何问题,Salesforce StackExchange站点上也已经提出了许多问题。