Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/max-mapper/electron-spawn
easy way to run code inside of a headless electron window from the CLI
https://github.com/max-mapper/electron-spawn
Last synced: about 1 month ago
JSON representation
easy way to run code inside of a headless electron window from the CLI
- Host: GitHub
- URL: https://github.com/max-mapper/electron-spawn
- Owner: max-mapper
- Created: 2015-04-28T19:59:02.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-07-07T22:49:06.000Z (over 6 years ago)
- Last Synced: 2024-04-13T23:14:08.659Z (8 months ago)
- Language: JavaScript
- Size: 21.5 KB
- Stars: 198
- Watchers: 7
- Forks: 21
- Open Issues: 11
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# electron-spawn
run code easily inside of headless electron (chromium) windows from the command line
## usage
```
$ npm i electron-prebuilt -g
$ npm i electron-spawn -g
$ echo "console.log('hello')" > foo.js
$ electron-spawn foo.js
```you can also export a function that takes arguments to get all the arguments passed in to your program:
```
$ echo "module.exports = function (args) { console.log(args) }" > foo.js
$ electron-spawn foo.js bar baz
# outputs ['bar', 'baz']
```or you can use `process.argv` like an ordinary node program:
```
$ echo 'console.log(process.argv.slice(2))' > hello.js
$ electron-spawn hello.js beep boop
# outputs: ['beep', 'boop']
````process.stdin` works too:
``` js
process.stdin.on('data', function (buf) {
console.log('buf=', buf)
})
``````
$ echo beep boop | electron-spawn stdin.js
buf=
```## api
### `var spawn = require('electron-spawn')`
return a function that spawn electron
### `var electron = spawn(scriptname[, params..., execOptions])`
returns a child process running electron with the given `scriptname`
`params` are a list of arguments passed to the process
`execOptions` is an object literal to set options on how the process gets spawned
```js
var spawn = require('electron-spawn')
var electron = spawn('foo.js', 'bar', 'baz', {
detached: true
})
electron.stderr.on('data', function (data) {
console.error(data.toString())
})
electron.stdout.on('data', function (data) {
console.log(data.toString())
})
```limitations:
- cannot automatically yet exit your program like how node does when you have no more activity on the event loop
But in your script you can call `require('electron').remote.app.quit()` to quit when it's done:
```js
module.exports = function (args) {
var img = new Image()
img.onload = function () {
require('electron').remote.app.quit()
}
img.src = 'http://example.com/cat.gif'
}
```or you can call `process.exit()` like an ordinary node program.