在一个gitlab项目中为Nw.js和web版本开发web应用程序的最佳实践



我正在开发一个web应用程序(使用react(,这个项目对我来说相当巨大(超过100个文件(。最近,我需要使用NW.js构建该应用程序的前端部分,并将其部署到Windows中。

我很难在一个GitLab项目中维护同一应用程序的两个版本。由于两个版本的代码库几乎相同,但现在只是有些功能不同。例如,要下载或读取NW.js中的文件,需要调用NW.js提供的函数或其他本地调用。为了进一步开发,可能有一些功能仅适用于nw.js版本。

以下是我能想到的建议。

  1. 在git实验室项目中使用两个分支进行开发。对于发布时,GitLab cli将构建两个版本的分支机构
  2. 为不同版本的应用程序指定两个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

最新更新