Juan Cruz Viotti 1a27ecdad4 Override child_process.execFile asar patch for child_process.exec
NodeJS implements `child_process.exec` by simply passing the whole
command to `child_process.execFile`. See:

- https://github.com/nodejs/node/blob/master/lib/child_process.js#L90
- https://github.com/nodejs/node/blob/master/lib/child_process.js#L99

Electron patches `child_process.execFile` to add support for `asar`
archives by injecting logic that extracts the required files from the
`asar` to a temporary location before delegating the work to the
original `child_process.execFile`.

In order to decide whether to inject the custom `asar` extracting logic,
Electron makes use of a helper function called `splitPath()`. See:

- https://github.com/electron/electron/blob/master/lib/common/asar.js#L37

If the first argument of the returned array equals `true`, means that
the path is considered to be an `asar` archive, and thus the extraction
logic takes place. The problem is that if the command passed to
`child_process.execFile` *contains* a path to an asar archive, padded
with other commands/arguments, `splitPath()` will consider it to be an
`asar` archive, and will try to extract it, throwing a rightfully
`Invalid package` error.

Fixes: https://github.com/electron/electron/issues/5571
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-19 17:19:36 -04:00
2016-05-11 15:14:56 +09:00
2016-05-15 10:33:23 +09:00
2016-05-13 11:11:50 +09:00
⬆️ node@5.10.0
2016-04-08 08:24:40 -07:00
2015-10-06 16:34:20 -04:00
2016-05-13 11:12:15 +09:00
2016-05-11 19:30:06 +09:00
2014-05-04 20:29:08 +08:00
2016-05-13 17:00:02 +09:00
2016-05-11 10:48:54 +09:00
2016-05-02 09:07:14 -07:00

Electron Logo

Travis Build Status AppVeyor Build Status devDependency Status Join the Electron Community on Slack

Formerly known as Atom Shell

The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on Node.js and Chromium and is used in the Atom editor.

Follow @ElectronJS on Twitter for important announcements.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to atom@github.com.

Downloads

Prebuilt binaries and debug symbols of Electron for Linux, Windows and OS X can be found on the releases page.

You can also use npm to install prebuilt electron binaries:

# Install the `electron` command globally in your $PATH
npm install electron-prebuilt -g

# Install as a development dependency
npm install electron-prebuilt --save-dev

Mirrors

Documentation

Guides and the API reference are located in the docs directory. It also contains documents describing how to build and contribute to Electron.

Documentation Translations

Quick Start

Clone and run the electron/electron-quick-start repository to see a minimal Electron app in action.

Community

You can ask questions and interact with the community in the following locations:

Check out awesome-electron for a community maintained list of useful example apps, tools and resources.

Description
No description provided
Readme MIT 380 MiB
Languages
C++ 54.8%
TypeScript 34.6%
Objective-C++ 5.4%
JavaScript 2.4%
Python 1.7%
Other 1%