-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Support packaging nativefier applications into Squirrel-based installers #744
Conversation
@AdrianDC thanks for the PR! What is this? What does it have to do with Nativefier? A tiny bit of context, please 🙂. |
I completed the merge request's presentation with the last 4 items, |
@AdrianDC okay, got it, thanks for the explanation! Merging and adding docs. |
That will do for now: https://github.com/jiahaog/nativefier/blob/master/docs/api.md#packaging-squirrel-based-installers . Thanks again @AdrianDC, and 🙏 for the delay. Merging a few other things over the weekend, then cutting a release. |
* As explained in: electron/electron#8862 (comment) an issue with .quit() exists with a "Cannot find module '../screen'" issue, while using the .exit() alternative avoids the issue * Validated on Windows with the same logic as #744 where the issue recently appeared
missing ../screen is still an issue for me @AdrianDC (Edit: Just needs to be released to a new version) |
…ers (nativefier#744) [Squirrel](https://github.com/Squirrel/Squirrel.Windows) is *"an installation and update framework for Windows desktop apps "*. This PR adds `electron-squirrel-startup`, allowing to package nativefier applications into squirrel-based setup installers. Squirrel require this entrypoint to perform desktop and startup menu creations, without showing the UI on setup launches. - References: https://github.com/mongodb-js/electron-squirrel-startup - Resolves `electron-winstaller` and `electron-installer-windows` support of desktop / startup menu shortcuts for nativefier packaged applications. - The `electron-squirrel-startup` entrypoint has no effect on both Linux and Darwin, only on Windows - Supporting it directly inside `nativefier` avoids having to "hack" around the existing `main.js` and including dependencies from `electron-squirrel-startup` in an intermediate package to be included in a third layer for the final installer executable - The following script based on both `nativefier` and `electron-winstaller` templates represents a portable proof of concept for this merge request : ```js var nativefier = require('nativefier').default; var electronInstaller = require('electron-winstaller'); var options = { name: 'Web WhatsApp', targetUrl: 'http://web.whatsapp.com', platform: 'windows', arch: 'x64', version: '0.36.4', out: '.', overwrite: false, asar: false, counter: false, bounce: false, width: 1280, height: 800, showMenuBar: false, fastQuit: false, userAgent: 'Mozilla ...', ignoreCertificate: false, ignoreGpuBlacklist: false, enableEs3Apis: false, insecure: false, honest: false, zoom: 1.0, singleInstance: false, fileDownloadOptions: { saveAs: true }, processEnvs: { GOOGLE_API_KEY: '<your-google-api-key>' } }; nativefier(options, function(error, appPath) { if (error) { console.error(error); return; } console.log('App has been nativefied to', appPath); resultPromise = electronInstaller.createWindowsInstaller({ appDirectory: 'Web WhatsApp-win32-x64', outputDirectory: './', authors: 'Web WhatsApp', exe: 'Web WhatsApp.exe' }); resultPromise.then(() => console.log('It worked!'), e => console.log(`No dice: ${e.message}`)); }); ```
…#784) * As explained in: electron/electron#8862 (comment) an issue with .quit() exists with a "Cannot find module '../screen'" issue, while using the .exit() alternative avoids the issue * Validated on Windows with the same logic as nativefier#744 where the issue recently appeared
Squirrel is "an installation and update framework for Windows desktop apps ".
This PR adds
electron-squirrel-startup
, allowing to package nativefier applicationsinto squirrel-based setup installers. Squirrel require this entrypoint to perform
desktop and startup menu creations, without showing the UI on setup launches.
References: https://github.com/mongodb-js/electron-squirrel-startup
Resolves
electron-winstaller
andelectron-installer-windows
support of desktop / startup menu shortcuts for nativefier packaged applications.The
electron-squirrel-startup
entrypoint has no effect on both Linux and Darwin, only on WindowsSupporting it directly inside
nativefier
avoids having to "hack" around the existingmain.js
and including dependencies from
electron-squirrel-startup
in an intermediate packageto be included in a third layer for the final installer executable
The following script based on both
nativefier
andelectron-winstaller
templatesrepresents a portable proof of concept for this merge request :