electron-stream

Simple streaming wrapper around electron

MIT 51 个版本
安装
npm install electron-stream
yarn add electron-stream
pnpm add electron-stream
bun add electron-stream
README

electron-stream

Write JavaScript to electron, get console output back!

downloads

Example

Boot a hidden electron instance, log to stdout and clean up:

var electron = require('electron-stream');

var browser = 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.

var electron = require('electron-stream');
var http = require('http');

var server = 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);
var browser = electron({ loc: 'http://localhost:8000' });
browser.pipe(process.stdout);
browser.end();

Output streams

electron-stream lets you read all of the console output together, or split up into stdout and stderr:

// console.log and console.error
browser.pipe(...);
browser.stdall.pipe(...);

// console.log only
browser.stdout.pipe(...);

// console.error only
browser.stderr.pipe(...);

Installation

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

Travis

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

Source.

API

electron([opts])

Create a writable stream around a newly spawned electron which forwards written data to electron. This module bundles electron-prebuilt.

Options:

  • show: Show the electron window. Defaults to false.
  • node: Enable node integration. Defaults to false.
  • basedir: Set this if you need to require node modules in node mode
  • static: Serve static files from this directory at /
  • loc: a full url like http://localhost:8080/ for using an existing http server. When loc is supplied, options node, basedir, and static are all ignored.
  • sandbox: Run electron with sandbox. Disable to emit debug information when using Docker. Defaults to true.

electron#stdout

electron#stderr

electron#stdall

Readable streams containing the console output. console.log will be forwarded to .stdout, console.error to .stderr. .stdall has them both.

electron#kill()

Kill the child process.

electron#on('exit', fn)

Emitted when the underlying electron exits. There can be multiple reasons for this:

  • electron#kill() was called
  • window.close() was sent as a script
  • there was a fatal error

License

MIT

版本列表
11.0.2 2023-09-19
11.0.1 2023-09-19
11.0.0 2023-09-09
10.0.2 2022-03-23
10.0.1 2022-03-23
10.0.0 2021-11-01
9.1.1 2021-10-14
9.1.0 2021-04-08
9.0.0 2021-04-06
8.0.0 2020-07-22
7.1.0 2019-06-17
7.0.1 2019-05-02
7.0.0 2019-04-26
6.0.0 2018-10-09
5.1.2 2018-03-27
5.1.1 2018-01-23
5.1.0 2017-12-04
5.0.6 2017-09-07
5.0.5 2017-07-10
5.0.4 2017-04-26
5.0.3 2017-04-12
5.0.2 2017-03-16
5.0.1 2017-03-09
5.0.0 2017-03-08
4.2.2 2017-03-08
4.2.1 2017-03-04
4.2.0 2017-03-04
4.1.1 2017-03-04
4.1.0 2017-03-04
4.0.0 2016-10-27
3.1.0 2016-09-28
3.0.2 2016-05-22
3.0.1 2016-05-11
3.0.0 2016-05-11
2.6.2 2016-03-31
2.6.1 2016-03-31
2.6.0 2016-03-27
2.5.0 2016-03-14
2.4.1 2016-01-07
2.4.0 2015-12-31
2.3.0 2015-12-11
2.2.0 2015-11-16
2.1.2 2015-10-29
2.1.1 2015-10-29
2.1.0 2015-10-29
2.0.0 2015-10-29
1.1.1 2015-10-29
1.1.0 2015-10-28
1.0.2 2015-10-28
1.0.1 2015-10-28
1.0.0 2015-10-28