55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# It Opens Stuff
|
|
|
|
That is, in your desktop environment. This will make *actual windows pop up*, with stuff in them:
|
|
|
|
```bash
|
|
npm install opener -g
|
|
|
|
opener http://google.com
|
|
opener ./my-file.txt
|
|
opener firefox
|
|
opener npm run lint
|
|
```
|
|
|
|
Also if you want to use it programmatically you can do that too:
|
|
|
|
```js
|
|
var opener = require("opener");
|
|
|
|
opener("http://google.com");
|
|
opener("./my-file.txt");
|
|
opener("firefox");
|
|
opener("npm run lint");
|
|
```
|
|
|
|
Plus, it returns the child process created, so you can do things like let your script exit while the window stays open:
|
|
|
|
```js
|
|
var editor = opener("documentation.odt");
|
|
editor.unref();
|
|
// These other unrefs may be necessary if your OS's opener process
|
|
// exits before the process it started is complete.
|
|
editor.stdin.unref();
|
|
editor.stdout.unref();
|
|
editor.stderr.unref();
|
|
```
|
|
|
|
## Use It for Good
|
|
|
|
Like opening the user's browser with a test harness in your package's test script:
|
|
|
|
```json
|
|
{
|
|
"scripts": {
|
|
"test": "opener ./test/runner.html"
|
|
},
|
|
"devDependencies": {
|
|
"opener": "*"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Why
|
|
|
|
Because Windows has `start`, Macs have `open`, and *nix has `xdg-open`. At least [according to some person on StackOverflow](http://stackoverflow.com/q/1480971/3191). And I like things that work on all three. Like Node.js. And Opener.
|