npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

electron-packager-itchio

v5.1.2

Published

package your electron app in OS executables (.app, .exe, etc) via JS or CLI

Downloads

4

Readme

electron-packager

Package your Electron app into OS-specific bundles (.app, .exe, etc.) via JavaScript or the command line. Supports building Windows, Linux or Mac executables.

Build Status

About

Electron Packager is a command line tool that packages electron app source code into executables like .app or .exe along with a copy of Electron.

This module was developed as part of Dat, a grant funded non-profit open source project. It is maintained by volunteers. If you are benefitting from this module please consider making contributions back.

Note that packaged Electron applications can be relatively large. A zipped barebones OS X Electron application is around 40MB.

Installation

# for use in npm scripts
npm install electron-packager --save-dev

# for use from cli
npm install electron-packager -g

Usage

From the Command Line

Running electron-packager from the command line has this basic form:

electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> --version=<Electron version> [optional flags...]

This will:

  • Find or download the correct release of Electron
  • Use that version of Electron to create a app in <out>/<appname>-<platform>-<arch> (this can be customized via an optional flag)

For details on the optional flags, run electron-packager --help or see usage.txt.

You should be able to launch the app on the platform you built for. If not, check your settings and try again.

Be careful not to include node_modules you don't want into your final app. electron-packager, electron-prebuilt and .git will be ignored by default. You can use --ignore to ignore files and folders via a regular expression. For example, --ignore=node_modules/electron-packager or --ignore="node_modules/(electron-packager|electron-prebuilt)".

Example

Given the app FooBar with the following file structure:

foobar
├─package.json
└┬src
 ├─index.html
 ├─script.js
 └─style.css

When one runs the following command for the first time in the foobar directory:

electron-packager . FooBar --platform=darwin --arch=x64 --version=0.28.2

electron-packager will do the following:

  • downloads Electron 0.28.2 for OS X on x64 (and caches the download in ~/.electron)
  • builds the OS X FooBar.app
  • places FooBar.app in foobar/FooBar-darwin-x64/ (since an out directory was not specified)

The file structure now looks like:

foobar
├┬FooBar-darwin-x64
│├┬FooBar.app
││└[…Mac app contents…]
│├─LICENSE
│└─version
├─package.json
└┬src
 ├─index.html
 ├─script.js
 └─style.css

The FooBar.app folder generated can be executed by a system running OS X, which will start the packaged Electron app.

Programmatic API

var packager = require('electron-packager')
packager(opts, function done (err, appPath) { })

packager(opts, callback)

opts

Required

dir - String

The source directory.

name - String

The application name.

platform - String

Allowed values: linux, win32, darwin, all

Not required if all is used. Arbitrary combinations of individual platforms are also supported via a comma-delimited string or array of strings. The non-all values correspond to the platform names used by Electron releases.

arch - String

Allowed values: ia32, x64, all

Not required if all is used. The non-all values correspond to the architecture names used by Electron releases.

version - String

Electron version (without the 'v') - for example, 0.33.9. See Electron releases for valid versions.

Optional

all - Boolean

When true, sets both arch and platform to all.

app-bundle-id - String

app-category-type - String

The application category type, as shown in the Finder via View -> Arrange by Application Category when viewing the Applications directory (OS X only).

For example, app-category-type=public.app-category.developer-tools will set the application category to Developer Tools.

Valid values are listed in Apple's documentation.

app-version - String

asar - Boolean

asar-unpack - String

asar-unpack-dir - String

Unpacks the dir to app.asar.unpacked directory whose names exactly match this string. The asar-unpack-dir is relative to dir. For example, asar-unpack-dir=sub_dir will unpack the directory /<dir>/sub_dir.

build-version - String

cache - String

helper-bundle-id - String

icon - String

Currently you must look for conversion tools in order to supply an icon in the format required by the platform:

If the file extension is omitted, it is auto-completed to the correct extension based on the platform, including when --platform=all is in effect.

ignore - RegExp

out - String

overwrite - Boolean

prune - Boolean

sign - String

strict-ssl - Boolean

Whether SSL certificates are required to be valid when downloading Electron. Defaults to true.

version-string - Object

Object hash of application metadata to embed into the executable (Windows only):

  • CompanyName
  • LegalCopyright
  • FileDescription
  • OriginalFilename
  • FileVersion
  • ProductVersion
  • ProductName
  • InternalName
callback

err - Error

Contains errors, if any.

appPath - String

Path to the newly created application.

Building Windows apps from non-Windows platforms

Building an Electron app for the Windows platform with a custom icon requires editing the Electron.exe file. Currently, electron-packager uses node-rcedit to accomplish this. A Windows executable is bundled in that node package and needs to be run in order for this functionality to work, so on non-Windows platforms, Wine needs to be installed. On OS X, it is installable via Homebrew.

Related