2.2 KiB
Electron Dev on Codespaces
Welcome to the Codespaces Electron Developer Environment.
Quick Start
Upon creation of your codespace you should have build tools installed and an initialized gclient checkout of Electron. In order to build electron you'll need to run the following command.
e build
The initial build will take ~8 minutes. Incremental builds are substantially quicker. If you pull changes from upstream that touch either the patches
folder or the DEPS
folder you will have to run e sync
in order to keep your checkout up to date.
Directory Structure
Codespaces doesn't lean very well into gclient based checkouts, the directory structure is slightly strange. There are two locations for the electron
checkout that both map to the same files under the hood.
# Primary gclient checkout container
/workspaces/gclient/*
└─ src/* - # Chromium checkout
└─ electron - # Electron checkout
# Symlinked Electron checkout (identical to the above)
/workspaces/electron
Goma
If you are a maintainer with Goma access it should be automatically configured and authenticated when you spin up a new codespaces instance. You can validate this by checking e d goma_auth info
or by checking that your build-tools configuration has a goma mode of cluster
.
Running Electron
You can run Electron in a few ways. If you just want to see if it launches:
# Enter an interactive JS prompt headlessly
xvfb-run e start -i
But if you want to actually see Electron you will need to use the built-in VNC capability. If you click "Ports" in codespaces and then open the VNC web client
forwarded port you should see a web based VNC portal in your browser. When you are asked for a password use builduser
.
Once in the VNC UI you can open Applications -> System -> XTerm
which will open a VNC based terminal app and then you can run e start
like normal and Electron will open in your VNC session.
Running Tests
You run tests via build-tools and xvfb
.
# Run all tests
xvfb-run e test
# Run the main process tests
xvfb-run e test --runners=main
# Run the old remote tests
xvfb-run e test --runners=remote