![]() Consider an electron application that uses `execFile` to run a script that lives within the application code base: ```coffee child_process = require 'child_process' child_process.execFile __dirname + '/script.sh', (error) -> throw error if error? ``` An application like this will fail when being packaged in an `asar` with an following error: ``` Error: spawn EACCES ``` Electron overrides certain `fs` functions to make them work within an `asar` package. In the case of `execFile`, the file to be executed is extracted from the `asar` package into a temporary file and ran from there. The problem is that during the extraction, the original permissions of the file are lost. We workaround this by: 1. Extending `asar.stat` to return whether a file is executable or not, which is information that's already saved in the `asar` header. 2. Setting execution permissions on the extracted file if the above property holds true. Fixes: https://github.com/atom/electron/issues/3512 |
||
---|---|---|
atom | ||
chromium_src | ||
docs | ||
docs-translations | ||
script | ||
spec | ||
tools | ||
vendor | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
atom.gyp | ||
common.gypi | ||
CONTRIBUTING.md | ||
filenames.gypi | ||
LICENSE | ||
package.json | ||
README-ko.md | ||
README.md | ||
toolchain.gypi |
⚡ 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 1.2. 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 atom/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.