90 lines
2.2 KiB
Markdown
90 lines
2.2 KiB
Markdown
# opn
|
|
|
|
> A better [node-open](https://github.com/pwnall/node-open). Opens stuff like websites, files, executables. Cross-platform.
|
|
|
|
|
|
#### Why?
|
|
|
|
- Actively maintained
|
|
- Supports app arguments
|
|
- Safer as it uses `spawn` instead of `exec`
|
|
- Fixes most of the open `node-open` issues
|
|
- Includes the latest [`xdg-open` script](http://cgit.freedesktop.org/xdg/xdg-utils/commit/?id=c55122295c2a480fa721a9614f0e2d42b2949c18) for Linux
|
|
|
|
|
|
## Install
|
|
|
|
```
|
|
$ npm install --save opn
|
|
```
|
|
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const opn = require('opn');
|
|
|
|
// opens the image in the default image viewer
|
|
opn('unicorn.png').then(() => {
|
|
// image viewer closed
|
|
});
|
|
|
|
// opens the url in the default browser
|
|
opn('http://sindresorhus.com');
|
|
|
|
// specify the app to open in
|
|
opn('http://sindresorhus.com', {app: 'firefox'});
|
|
|
|
// specify app arguments
|
|
opn('http://sindresorhus.com', {app: ['google chrome', '--incognito']});
|
|
```
|
|
|
|
|
|
## API
|
|
|
|
Uses the command `open` on OS X, `start` on Windows and `xdg-open` on other platforms.
|
|
|
|
### opn(target, [options])
|
|
|
|
Returns a promise for the [spawned child process](https://nodejs.org/api/child_process.html#child_process_class_childprocess). You'd normally not need to use this for anything, but it can be useful if you'd like to attach custom event listeners or perform other operations directly on the spawned process.
|
|
|
|
#### target
|
|
|
|
*Required*
|
|
Type: `string`
|
|
|
|
The thing you want to open. Can be a URL, file, or executable.
|
|
|
|
Opens in the default app for the file type. Eg. URLs opens in your default browser.
|
|
|
|
#### options
|
|
|
|
Type: `object`
|
|
|
|
##### wait
|
|
|
|
Type: `boolean`
|
|
Default: `true`
|
|
|
|
Wait for the opened app to exit before calling the `callback`. If `false` it's called immediately when opening the app.
|
|
|
|
On Windows you have to explicitly specify an app for it to be able to wait.
|
|
|
|
##### app
|
|
|
|
Type: `string`, `array`
|
|
|
|
Specify the app to open the `target` with, or an array with the app and app arguments.
|
|
|
|
The app name is platform dependent. Don't hard code it in reusable modules. Eg. Chrome is `google chrome` on OS X, `google-chrome` on Linux and `chrome` on Windows.
|
|
|
|
|
|
## Related
|
|
|
|
- [opn-cli](https://github.com/sindresorhus/opn-cli) - CLI for this module
|
|
|
|
|
|
## License
|
|
|
|
MIT © [Sindre Sorhus](http://sindresorhus.com)
|