nodejs 系统托盘:SysTray 不是构造函数
nodejs systray: SysTray is not a constructor
我正在尝试为名为 systray 的 nodejs 使用 npm 模块,当我尝试 运行 npm 页面上给出的示例时它抛出
TypeError: SysTray is not a constructor
systray 似乎是一个流行的跨平台系统托盘模块,但它缺少示例,下面是我正在尝试的示例代码 运行
var SysTray = require("systray")
const systray = new SysTray({
menu: {
// you should using .png icon in macOS/Linux, but .ico format in windows
icon: "",
title: "My Systray",
tooltip: "Tips",
items: [{
title: "aa",
tooltip: "bb",
// checked is implement by plain text in linux
checked: true,
enabled: true
}, {
title: "aa2",
tooltip: "bb",
checked: false,
enabled: true
}, {
title: "Exit",
tooltip: "bb",
checked: false,
enabled: true
}]
},
debug: false,
copyDir: true, // copy go tray binary to outside directory, useful for packing tool like pkg.
})
systray.onClick(action => {
if (action.seq_id === 0) {
systray.sendAction({
type: 'update-item',
item: {
...action.item,
checked: !action.item.checked,
},
seq_id: action.seq_id,
})
} else if (action.seq_id === 1) {
// open the url
console.log('open the url', action)
} else if (action.seq_id === 2) {
systray.kill()
}
})
您尝试使用的 npm 包似乎是要与 typescript 一起使用的。
这样要求:
const SysTray = require('systray').default;
但可能最好使用 import 构造和 babel (https://babeljs.io/docs/en/babel-preset-typescript)
我正在尝试为名为 systray 的 nodejs 使用 npm 模块,当我尝试 运行 npm 页面上给出的示例时它抛出
TypeError: SysTray is not a constructor
systray 似乎是一个流行的跨平台系统托盘模块,但它缺少示例,下面是我正在尝试的示例代码 运行
var SysTray = require("systray")
const systray = new SysTray({
menu: {
// you should using .png icon in macOS/Linux, but .ico format in windows
icon: "",
title: "My Systray",
tooltip: "Tips",
items: [{
title: "aa",
tooltip: "bb",
// checked is implement by plain text in linux
checked: true,
enabled: true
}, {
title: "aa2",
tooltip: "bb",
checked: false,
enabled: true
}, {
title: "Exit",
tooltip: "bb",
checked: false,
enabled: true
}]
},
debug: false,
copyDir: true, // copy go tray binary to outside directory, useful for packing tool like pkg.
})
systray.onClick(action => {
if (action.seq_id === 0) {
systray.sendAction({
type: 'update-item',
item: {
...action.item,
checked: !action.item.checked,
},
seq_id: action.seq_id,
})
} else if (action.seq_id === 1) {
// open the url
console.log('open the url', action)
} else if (action.seq_id === 2) {
systray.kill()
}
})
您尝试使用的 npm 包似乎是要与 typescript 一起使用的。
这样要求:
const SysTray = require('systray').default;
但可能最好使用 import 构造和 babel (https://babeljs.io/docs/en/babel-preset-typescript)