No description
Find a file
Charles Kerr e315e4d308 build: use electron-frameworks sccache (#14171)
* build: update-external-binaries fetches sccache

* build: add util.add_exec_bit in scripts/

* build: use util.add_exec_bit in create-dist

* build: use util.add_exec_bit in update-external-binaries

this is needed to work around a bug in python's zipfile module that doesn't preserve the exec bit

https://bugs.python.org/issue18262

* fix: linting errors

* build: vsts, circleci use patched sccache

* build: always look for the x64 sccache

as it's the only arch we have it on

* fix: windows-specific errors in updaste-external-binaries

* fix: tyop

* fix: set SCCACHE_BUCKET, SCCACHE_TWO_TIER on circleci

* fix: syntax error in circleci yaml

* fix: keep churning

* chore: add tracer to file downloader

* docs: add sccache instructions for GN builds

* build: pull down the darwin sccache on mas builds

* build: use gn sync verbosely on circleci and vsts

* docs: copyediting

* build: remove unnecessary cache-dir arg

* docs: fix shell quoting in gn build instructions

* fix: invoke gclient without -verbose in circleci

* refactor: remove debug tracer

* fix: invoke gclient without -verbose in appveyor

* fix: invoke gclient without -verbose in vsts

* fix: pull add_exec_bit from correct source

* fix: remove 'SCCACHE_TWO_TIER' from CI scripts

* refactor: remove SCCACHE_BUCKET from ci scripts

this environment variable will be set via the CI UI instead

* refactor: clarify log message

* fix: set SCCACHE_PATH correctly for Windows CI
2018-08-21 15:40:06 -04:00
.circleci build: use electron-frameworks sccache (#14171) 2018-08-21 15:40:06 -04:00
.github chore: update PR template for new notes bot (#14103) 2018-08-15 08:43:11 -07:00
atom Bump v4.0.0-nightly.20180821 2018-08-21 11:55:32 -07:00
brightray refactor: move SpecialStoragePolicy from brightray to atom (#13944) 2018-08-21 08:51:04 -07:00
build build: [gn] add distributable zip target (#14093) 2018-08-21 13:06:28 -04:00
chromium_src chore: fix more chromium-style errors in windows code (#13487) 2018-06-28 14:20:11 -07:00
default_app feat: support chrome:// URLs in default_app (#13575) 2018-07-17 17:23:44 +10:00
docs build: use electron-frameworks sccache (#14171) 2018-08-21 15:40:06 -04:00
docs-translations update references to renamed i18n repo 2018-03-02 12:05:49 -08:00
lib feat: expose missing process APIs in sandboxed renderers (#13505) 2018-08-21 11:05:45 -07:00
native_mate [wip] build: try building node with GN 2018-08-10 10:06:27 -07:00
npm fix: electron path for postinstall (#14177) 2018-08-19 09:40:12 -07:00
script build: use electron-frameworks sccache (#14171) 2018-08-21 15:40:06 -04:00
spec feat: expose missing process APIs in sandboxed renderers (#13505) 2018-08-21 11:05:45 -07:00
tools build: [gn win] fix path names in js2asar 2018-07-27 12:08:39 -07:00
vendor chore: bump libcc (master) (#14214) 2018-08-20 08:42:11 -07:00
.clang-format
.dockerignore Add testing for arm, arm64 and ia32 linux builds 2017-12-20 11:54:52 -05:00
.env.example clarify purpose of .env.example 2018-07-11 12:55:15 -07:00
.gitignore chore: make beta bumps work (#14174) 2018-08-17 13:00:43 -07:00
.gitmodules rename back to expected values 2018-06-22 11:42:55 +10:00
.remarkrc add remark lint to ensure fenced codeblocks are formatted properly. 2017-11-20 14:05:47 +08:00
.travis.yml Add arm64 task in travis ci 2017-08-22 10:02:51 +09:00
appveyor-gn.yml build: use electron-frameworks sccache (#14171) 2018-08-21 15:40:06 -04:00
appveyor.yml Use VS2017 15.4.5 for Chromium 66 2018-08-14 09:34:34 -07:00
BUILD.gn build: [gn] add distributable zip target (#14093) 2018-08-21 13:06:28 -04:00
CODE_OF_CONDUCT.md Change Contact Emails (#12278) 2018-03-15 04:37:40 +09:00
common.gypi Disable node options in node config (#13311) 2018-06-20 13:08:24 +10:00
CONTRIBUTING.md add docs/development/README.md (#12373) 2018-03-20 15:36:48 -04:00
DEPS chore: bump libcc (master) (#14214) 2018-08-20 08:42:11 -07:00
Dockerfile Use Node.js 10 for CI builds 2018-06-19 11:49:45 +10:00
Dockerfile.arm64 Newer CI images (#12188) 2018-03-08 22:07:50 -05:00
Dockerfile.arm64v8 Update CI to use Node 8 2018-03-19 10:19:32 -04:00
Dockerfile.armv7 Update CI to use Node 8 2018-03-19 10:19:32 -04:00
Dockerfile.circleci Use Node.js 10 for CI builds 2018-06-19 11:49:45 +10:00
electron.gyp Bump v4.0.0-nightly.20180821 2018-08-21 11:55:32 -07:00
electron_paks.gni build: [gn] add //ui/strings:app_locale_settings to locale pak 2018-07-30 13:59:00 -07:00
features.gypi fix: enable osr (#14074) 2018-08-20 09:54:31 -07:00
filenames.gypi refactor: move SpecialStoragePolicy from brightray to atom (#13944) 2018-08-21 08:51:04 -07:00
LICENSE Update license year 2018-01-01 00:51:40 +01:00
package-lock.json Bump v4.0.0-nightly.20180821 2018-08-21 11:55:32 -07:00
package.json Bump v4.0.0-nightly.20180821 2018-08-21 11:55:32 -07:00
README.md Update installation instructions 2018-05-14 14:06:22 +03:00
SECURITY.md Change Contact Emails (#12278) 2018-03-15 04:37:40 +09:00
toolchain.gypi chrome style plugin: remove check-auto-raw-pointer option 2018-06-19 11:49:43 +10:00
vsts-gn.yml build: use electron-frameworks sccache (#14171) 2018-08-21 15:40:06 -04:00
vsts.yml Make sure artifacts are properly saved for nightly release builds 2018-07-16 17:07:48 -04:00

Electron Logo

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

📝 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 coc@electronjs.org.

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 for Electron prior to version 2, as it does not follow semantic versioning. As of version 2.0.0, Electron follows semver, so you don't need --save-exact flag. 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

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

Info on reporting bugs, getting help, finding third-party tools and sample apps, and more can be found in the support document.

License

MIT

When using the Electron or other GitHub logos, be sure to follow the GitHub logo guidelines.