Skip to content

Commit

Permalink
Provide an easy way to use a local build of Electron (electron#12426)
Browse files Browse the repository at this point in the history
* Provide an easy way to use a local build of Electron

For instance from ~/projects/electron/out/D

* document ELECTRON_OVERRIDE_DIST_PATH

* Make the linter happy

* Tweak ELECTRON_OVERRIDE_DIST_PATH docs
  • Loading branch information
MarshallOfSound authored and sethlu committed May 3, 2018
1 parent fc0519d commit 041c773
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 8 deletions.
7 changes: 6 additions & 1 deletion .gitignore
Expand Up @@ -42,4 +42,9 @@
/vendor/python_26/
node_modules/
SHASUMS256.txt
**/package-lock.json
**/package-lock.json
**/yarn.lock

# npm package
/npm/dist
/npm/path.txt
10 changes: 10 additions & 0 deletions docs/api/environment-variables.md
Expand Up @@ -85,3 +85,13 @@ This environment variable will not work if the `crashReporter` is started.
Shows the Windows's crash dialog when Electron crashes.

This environment variable will not work if the `crashReporter` is started.

### `ELECTRON_OVERRIDE_DIST_PATH`

When running from the `electron` package, this variable tells
the `electron` command to use the specified build of Electron instead of
the one downloaded by `npm install`. Usage:

```sh
export ELECTRON_OVERRIDE_DIST_PATH=/Users/username/projects/electron/out/D
```
16 changes: 12 additions & 4 deletions npm/index.js
Expand Up @@ -3,8 +3,16 @@ var path = require('path')

var pathFile = path.join(__dirname, 'path.txt')

if (fs.existsSync(pathFile)) {
module.exports = path.join(__dirname, fs.readFileSync(pathFile, 'utf-8'))
} else {
throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
function getElectronPath () {
if (fs.existsSync(pathFile)) {
var executablePath = fs.readFileSync(pathFile, 'utf-8')
if (process.env.ELECTRON_OVERRIDE_DIST_PATH) {
return path.join(process.env.ELECTRON_OVERRIDE_DIST_PATH, executablePath)
}
return path.join(__dirname, 'dist', executablePath)
} else {
throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
}
}

module.exports = getElectronPath()
6 changes: 3 additions & 3 deletions npm/install.js
Expand Up @@ -52,12 +52,12 @@ function getPlatformPath () {

switch (platform) {
case 'darwin':
return 'dist/Electron.app/Contents/MacOS/Electron'
return 'Electron.app/Contents/MacOS/Electron'
case 'freebsd':
case 'linux':
return 'dist/electron'
return 'electron'
case 'win32':
return 'dist/electron.exe'
return 'electron.exe'
default:
throw new Error('Electron builds are not available on platform: ' + platform)
}
Expand Down

0 comments on commit 041c773

Please sign in to comment.