I would like to propose a new electron.mk and companion scripts for making it easier to port Electron-based applications.
There are a number of obstacles in porting Electron-based appications, namely:
- Need to adapt to different node package managers used in a project (npm, yarn, and pnpm)
Different package managers have different commands and options. With electron.mk, porters don't have to worry about those differences using USE_ELECTRON=npm feature.
- Need to create an archive of necessary node modules and host the file somewhere online
An Electron-based project usually tries to install npm install command during the build phase. We can't allow this because npm install involves network access. So we had to pre-generate an archive for necessary node modules and host it somewhere online. electron.mk eliminates the necessity by locally generating the distfile for node modules on-the-fly at a host building the port during the fetch phase.
- Need to adapt to different package builders used (electron-builder, electron-packager, and electron-forge)
Different package builders have different commands and options. With electron.mk, porters don't have to worry about those differences using USE_ELECTRON=build feature.
In sumary, electron.mk hides the complexities of porting Electron-based applications under the hood with USES=electron and USE_ELECTRON features.