Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

electron-forge

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

electron-forge

A complete tool for building modern Electron applications

  • 0.0.9
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Electron Forge

Build Status Commitizen friendly npm version npm license status

The simple way to get started with Electron

Getting Started

npm install -g electron-forge
electron-forge init my-new-app
cd my-new-app
electron-forge start

Urgh, really... Another build tool

Funnily enough, no :D. This is not another build tool, electron-forge simply unifies the existing (and well maintained) build tools for Electron development into one, simple, easy to use package so that anyone can just jump right in to Electron development.

So what's the point

This project has a few main goals.

  1. Starting with Electron should be as simple as a single command
  2. Developers shouldn't have to worry about babel, browserify, webpack or any of that nonsense. Everything should just work for them out of the box.
  3. Everything from creating the project to packaging the project for release should be handled by one dependency in a standard way while still offering users maximum choice and freedom.

With these goals in mind, under the hood this project uses electron-compile: a tool that lets you use modern and futuristic langauges inside Electron without worrying about transpiling or build tooling.

So go on then... How do I use the thing :)

Glad you asked, it's beyond easy to get started with electron-forge.

Starting a new Project

npm install -g electron-forge
electron-forge init my-new-project

This command will generate you a brand new project folder and install all your NPM dependencies so you will be all set to go. By default we will also install airbnb linting modules. If you want to follow the standard linting rules instead use the --lintstyle=standard argument.

Launching your Project

electron-forge start

Any args after "start" will be passed through to your application when it is launched.

Packaging your Project

electron-forge package

Yes, it really is that simple. If you want to specify platform / arch, use the --platform=<platform> and --arch=<arch> arguments.

Generating a distributable for your Project

electron-forge make

This will generate platform specific distributables for you. Note you can only generate distributables for your current platform.

Linting your Project

electron-forge lint

Config

Once you have generated a project your package.json file will have some default forge config. Below is the reference structure for this config object.

{
  "make_targets": {
    "win32": ["squirrel"], // An array of win32 make targets
    "darwin": ["zip", "dmg"], // An array of darwin make targets
    "linux": ["deb", "rpm", "flatpak"] // An array of linux make targets
  },
  "electronPackagerConfig": {},
  "electronWinstallerConfig": {},
  "electronInstallerDMG": {},
  "electronInstallerFlatpak": {},
  "electronInstallerDebian": {},
  "electronInstallerRedhat": {}
}

Possible make targets

Target NameAvailable PlatformsDescriptionConfigurable OptionsDefault?Requirements
zipAllZips your packaged applicationNoneYeszip on Darwin/Linux
squirrelWindowsGenerates an installer and .nupkg files for Squirrel.WindowselectronWinstallerConfigYes
dmgDarwinGenerates a DMG fileelectronInstallerDMGNo
debLinuxGenerates a Debian installerelectronInstallerDebianYesfakeroot and dpkg
rpmLinuxGenerates a Redhat installerelectronInstallerRedhatYesrpm
flatpakLinuxGenerates a flatpak fileelectronInstallerFlatpakNoflatpak-builder

Configuring package

You can set electronPackagerConfig with any of the options from Electron Packager.

NOTE: The afterCopy and afterExtract are mapped to require calls internally so provide a path to a file that exports your hooks and they will still run.

FAQs

Package last updated on 10 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc