Write JavaScript toelectron
,get console output back!
Boot a hidden electron instance, log to stdout and clean up:
varelectron=require('electron-stream');
varbrowser=electron();
browser.pipe(process.stdout);
browser.write('console.log(window.location.href);');
browser.write('window.close();');
browser.end();
Alternatively, use an existing http server. Note you cannot write to electron-stream when outside http server is in use.
varelectron=require('electron-stream');
varhttp=require('http');
varserver=http.createServer((req,res)=>{
if(/^\/bundle\.js/.test(req.url)){
res.setHeader('content-type','application/javascript');
res.setHeader('cache-control','no-cache');
res.end('console.log( "hello" );window.close();');
return;
}
if(req.url=='/'){
res.setHeader('Content-Type','text/html');
res.end(`<!DOCTYPE html><meta charset= "utf8" ><body><script src= "/bundle.js" ></script></body>`);
return;
}
});
server.listen(8000);
varbrowser=electron({loc:'http://localhost:8000'});
browser.pipe(process.stdout);
browser.end();
electron-stream
lets you read all of the console output together, or split up intostdout
andstderr
:
// console.log and console.error
browser.pipe(...);
browser.stdall.pipe(...);
// console.log only
browser.stdout.pipe(...);
// console.error only
browser.stderr.pipe(...);
To install as a library:
$ npm install electron-stream
To install as a binary:
$ npm install -g electron-stream
$echo"console.log('foo');window.close()"|electron-stream
To use electron on travis, add this to your travis.yml:
addons:
apt:
packages:
-xvfb
install:
-export DISPLAY=':99.0'
-Xvfb:99 -screen 0 1024x768x24 > /dev/null 2>&1 &
-npm install
Create a writable stream around a newly spawnedelectron
which forwards written data toelectron
.This module bundleselectron-prebuilt.
Options:
show
:Show the electron window. Defaults tofalse
.node
:Enable node integration. Defaults tofalse
.basedir
:Set this if you need to require node modules innode
modestatic
:Serve static files from this directory at/
loc
:a full url likehttp://localhost:8080/
for using an existing http server. Whenloc
is supplied, optionsnode
,basedir
,andstatic
are all ignored.sandbox
:Run electron with sandbox. Disable to emit debug information when using Docker. Defaults totrue
.
Readable streams containing the console output.console.log
will be forwarded to.stdout
,console.error
to.stderr
..stdall
has them both.
Kill the child process.
Emitted when the underlyingelectron
exits. There can be multiple reasons for this:
electron#kill()
was calledwindow.close()
was sent as a script- there was a fatal error
MIT