forge
forge copied to clipboard
Add InnoSetup make Target
- [x] I have read the contribution documentation for this project.
- [x] I agree to follow the code of conduct that this project follows, as appropriate.
- [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.
Please describe your issue:
I'd like to see some alternative make targets on Windows, Squirrel's windows installer does not offer the user feedback or customizable install I am looking to offer so at the moment I am using forge to package and InnoSetup to create installer see this repo for the setup. The end product installer is a more user-friendly and familiar experience than Squirrel currently offers. It's also got some easy to integrate toolchain stuff like a CLI and some node wrappers
If this is something that you think would benefit electron-forge, I'd be happy to work on it but would be good to get some pointers on where in the codebase to start.
If you don't think InnoSetup is suitable for electron-forge please feel free to close this issue.
We're more than happy to have contributions for creating InnoSetup-based distributables. I would prefer if it was a separate module like electron-installer-debian or electron-windows-store, and then we can integrate with it.
Ok I'll look into that approach, is there any particular structure (API exposures etc) that would make the project more easily integrated with forge? On Mon, 15 May 2017 at 8:43 am, Mark Lee [email protected] wrote:
We're more than happy to have contributions for creating InnoSetup-based distributables. I would prefer if it was a separate module like electron-installer-debian or electron-windows-store, and then we can integrate with it.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/electron-userland/electron-forge/issues/226#issuecomment-301345050, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhYrdDbPuZJLymfA_9GpTqRDN9gGf2uks5r54OZgaJpZM4NahCR .
-- Regards,
Liam Whan
@hammus I would recommend following a similar API to the other electron-installer-* modules, their basic API looks like this.
const installerModule = require('electron-installer-*');
const optionsObject = {
src: 'path/to/packaged/app',
dest: 'path/to/output',
// Other options
}
installerModule(optionsObject, (err) => {
// err != null something went wrong
})
I imagine we'd prefer a Promise-compatible API over callback-based though 😃 (feel free to support both)
After some poking around I suspect this might not work for electron-forge, the dependency debt this creates is probably unmanageable, InnoSetup requires Wine no matter which way you slice it. Thoughts?
@hammus Windows only makers are perfectly ok 👍 When integrating with forge we will simply set the isSupportedOnCurrentPlatform function correctly 👍
AppX makers are already windows only
If you want custom installer for windows, you can use NSIS from electron-builder — https://www.npmjs.com/package/electron-forge-maker-nsis
If a developer is more familiar with configuring an InnoSetup installer, they may appreciate the option to make one for an Electron app.
@erickzhao I can tackle this one if it's still relevant.