nodejs systray: SysTray не является конструктором

Я пытаюсь использовать модуль npm для nodejs под названием systray, когда я пытаюсь запустить пример, приведенный на странице npm, которую он выдает

TypeError: SysTray не является конструктором

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()
    }
})

1 ответ

Требуйте это следующим образом:

const SysTray = require('systray').default;

Но, вероятно, лучше использовать конструкции импорта и babel ( https://babeljs.io/docs/en/babel-preset-typescript)

Кажется, что пакет npm, который вы пытаетесь использовать, предназначен для использования с машинописью.

Другие вопросы по тегам