我正在开发一个web应用程序(使用react(,这个项目对我来说相当巨大(超过100个文件(。最近,我需要使用NW.js构建该应用程序的前端部分,并将其部署到Windows中。
我很难在一个GitLab项目中维护同一应用程序的两个版本。由于两个版本的代码库几乎相同,但现在只是有些功能不同。例如,要下载或读取NW.js中的文件,需要调用NW.js提供的函数或其他本地调用。为了进一步开发,可能有一些功能仅适用于nw.js版本。
以下是我能想到的建议。
- 在git实验室项目中使用两个分支进行开发。对于发布时,GitLab cli将构建两个版本的分支机构
- 为不同版本的应用程序指定两个Webpack配置和环境变量。例如,文件A、B、C、D表示Web版本,文件A,B、C和E表示NW.js版本。对于每个版本,GitLab cli都会使用两个Webpack文件来构建两个bundle.js
对于1的缺点,当我需要添加一个新功能时,我需要做两次,因为我需要在不同的分支中开发该功能,选择2共享更多的文件和功能。
对于选项2,如果两个版本之间的差异变大,代码可能会更复杂。
我有两个选择。有人有什么想法吗?或者建议一些文章让我决定。在这样的应用程序中有什么最佳实践可以开发?
如果只是一些函数不同:
const desktopApp = Boolean(window && window.nw)
if (desktopApp) {
//call function for version A
} else {
//call function for version B