Creating the Electron App
Wanted to play around with creating a desktop app with Electron on Fedora. Followed the quick start guide for Electron changing the win.loadFile
to win.loadURL
to load an existing web app. Code is here here is my main.js
const { app, BrowserWindow } = require('electron')
const path = require('path')
const createWindow = () => {
const win = new BrowserWindow({
width: 1200,
height: 850,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadURL('https://austincunningham.github.io/Git_Repos_Rest_API/lab-4.1-Github-API/index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
Testing the app by running npm start
and the app opens
That seems straight forward.
Building the binary
Again following the quick start guide I get to the npm run make
command here is where I hit some trouble
npm run make
> electron-github@1.0.0 make /home/austincunningham/repo/electron-github
> electron-forge make
✔ Checking your system
✔ Resolving Forge Config
An unhandled rejection has occurred inside Forge:
Error: Cannot make for deb, the following external binaries need to be installed: dpkg, fakeroot
Electron Forge was terminated. Location:
So I install the missing dependencies
sudo dnf install dpkg
sudo dnf install fakeroot
I rerun the npm run make
command
npm run make
> electron-github@1.0.0 make /home/austincunningham/repo/electron-github
> electron-forge make
✔ Checking your system
✔ Resolving Forge Config
An unhandled rejection has occurred inside Forge:
Error: Cannot make for rpm, the following external binaries need to be installed: rpmbuild
Electron Forge was terminated. Location:
So I guess there is another missing dependency I try and install rpmbuild
sudo dnf install rpmbuild
No match for argument: rpmbuild
Error: Unable to find a match: rpmbuild
I figure it rpm related so Googled it and find https://www.redhat.com/sysadmin/create-rpm-package
I install the dependencies from the blog
sudo dnf install -y rpmdevtools rpmlint
And happy days the npm run make
completes
npm run make
> electron-github@1.0.0 make /home/austincunningham/repo/electron-github
> electron-forge make
✔ Checking your system
✔ Resolving Forge Config
We need to package your application before we can make it
✔ Preparing to Package Application for arch: x64
✔ Preparing native dependencies
✔ Packaging Application
Making for the following targets: deb, rpm
✔ Making for target: deb - On platform: linux - For arch: x64
✔ Making for target: rpm - On platform: linux - For arch: x64
It built the deb and rpm bundles, guessing need to be run on windows and mac to build their binaries. More to learn here but that's all for now.
Top comments (1)
This article could not be more necessary. Thank you!