opn
是Node下一个更好的启动模块。它可以打开网站、文件、可执行文件,而且opn
是跨平台的
为什么使用opn
opn
是一个积极维护中的模块- 支持
app
参数 - 由于使用
exec
代替了spawn
,所以更安全 - 修正了大部分
node-open
的问题 - 包含了Liunx下最新的
xdg-open
脚本
安装
$ npm install --save opn
用法
const opn = require('opn');
// 用默认的图片浏览器打开图片文件
opn('someimage.png').then(() => {
// 关闭图片浏览器后的处理逻辑
});
// 用默认的浏览器打开网址
opn('https://ruphi.cn');
// 指定应用打开
opn('https://ruphi.cn', {app: 'firefox'});
// 指定传递给应用的参数
opn('https://ruphi.cn', {app: ['google chrome', '--incognito']});
API
opn
模块在macOS下使用open
命令,在windows下使用start
,而在其他平台下用xdg-open
命令
1、语法:
opn(target, [options])
返回值是一个promise对象,通常情况下我们并不需要用到这个返回值。但是如果我们想加上自定义事件监听器,或者直接在打开的进程上执行操作,那么这个返回值是很有用的
2、参数说明
target
类型:string
指定你想打开的东西,可以是URL、文件或者可执行文件
默认情况下,会用系统对文件类型设置的默认应用打开:如URL会用默认浏览器打开options
类型:Object
wait
类型:boolean
默认值: true
直到打开的应用退出了,再fullfill Promise,如果这个值设为false
的话,那么应用打开后,Promise就会立即进入fullfill状态。在windows
平台上,需要明确指明应用,才能够等待。app
类型:string
|Array
指定用来打开目标对象的应用,可以是一个数组(带应用名称和应用参数)
注意:应用名称是依赖于特定平台的,不推荐在可复用模块里使用硬编码。如Chrome浏览器,它在macOS下是google chrome
,windows下是chrome
,而Linux下是google-chrome