65ee977a86
* Fix timing issue in singleton fixture. Singleton now sends the "we've started" message out only after it's received a `'ready'` event from `app`. Previously it sent the message out immediately, resulting in the parent test trying to manipulate it before Singleton's event loop was fully bootstrapped. * Check for graceful exits on Linux, too. Rewrite the "exits gracefully on macos" spec to run on Linux too. * Check for graceful exits everywhere. * Tweak comment * Better error logging in api-app-spec.js. (#12122) In the 'exits gracefully' test for app.exit(exitCode), print the relevant error information if the test fails. * Run the exit-gracefully test on macOS and Linux. Windows does not support sending signals, but Node.js offers some emulation with process.kill(), and subprocess.kill(). Sending signal 0 can be used to test for the existence of a process. Sending SIGINT, SIGTERM, and SIGKILL cause the unconditional termination of the target process. So, we'll need a different approach if we want to test this in win32. |
||
---|---|---|
.circleci | ||
.github | ||
atom | ||
brightray | ||
chromium_src | ||
default_app | ||
docs | ||
docs-translations | ||
lib | ||
npm | ||
script | ||
spec | ||
tools | ||
vendor | ||
.clang-format | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.node-version | ||
.remarkrc | ||
.travis.yml | ||
CODE_OF_CONDUCT.md | ||
common.gypi | ||
CONTRIBUTING.md | ||
Dockerfile | ||
Dockerfile.arm64 | ||
Dockerfile.armv7 | ||
Dockerfile.circleci | ||
electron.gyp | ||
features.gypi | ||
filenames.gypi | ||
Jenkinsfile | ||
LICENSE | ||
package.json | ||
README.md | ||
SECURITY.md | ||
toolchain.gypi |
📝 Available Translations: 🇨🇳 🇹🇼 🇧🇷 🇪🇸 🇰🇷 🇯🇵 🇷🇺 🇫🇷 🇹🇭 🇳🇱 🇹🇷 🇮🇩 🇺🇦 🇨🇿 🇮🇹. View these docs in other languages at electron/i18n.
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 by the Atom editor and many other apps.
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 electron@github.com.
Installation
To install prebuilt Electron binaries, use npm
.
The preferred method is to install Electron as a development dependency in your
app:
npm install electron --save-dev --save-exact
The --save-exact
flag is recommended as Electron does not follow semantic
versioning. For info on how to manage Electron versions in your apps, see
Electron versioning.
For more installation options and troubleshooting tips, see installation.
Quick start
Clone and run the electron/electron-quick-start repository to see a minimal Electron app in action:
git clone https://github.com/electron/electron-quick-start
cd electron-quick-start
npm install
npm start
Resources for learning Electron
- electronjs.org/docs - all of Electron's documentation
- electron/electron-quick-start - a very basic starter Electron app
- electronjs.org/community#boilerplates - sample starter apps created by the community
- electron/simple-samples - small applications with ideas for taking them further
- electron/electron-api-demos - an Electron app that teaches you how to use Electron
- hokein/electron-sample-apps - small demo apps for the various Electron APIs
Programmatic usage
Most people use Electron from the command line, but if you require electron
inside
your Node app (not your Electron app) it will return the file path to the
binary. Use this to spawn Electron from Node scripts:
const electron = require('electron')
const proc = require('child_process')
// will print something similar to /Users/maf/.../Electron
console.log(electron)
// spawn Electron
const child = proc.spawn(electron)
Mirrors
Documentation Translations
Find documentation translations in electron/i18n.
Community
You can ask questions and interact with the community in the following locations:
electron
category on the Atom forums#atom-shell
channel on FreenodeAtom
channel on Slackelectron-ru
(Russian)electron-br
(Brazilian Portuguese)electron-kr
(Korean)electron-jp
(Japanese)electron-tr
(Turkish)electron-id
(Indonesia)electron-pl
(Poland)
Check out awesome-electron for a community maintained list of useful example apps, tools and resources.
License
When using the Electron or other GitHub logos, be sure to follow the GitHub logo guidelines.