пытаюсь по докам собрать что-то. Там указано, что подключается библиотека так:
var TwitchJs = require('twitch-js');
const token = 'token';
const username = 'username';
const twitchJs = new TwitchJs({ username, token }); <- вот это строчка выдает ошибку "TypeError: TwitchJs is not a constructor".
Каким образом скопированный из официальной документации код выдает ошибку - это выше моего понимания. Я погуглил, вроде как ни один описанный случай мне не подходит. Ну кроме того что TwitchJs в библиотеке просто не является конструктором) Возможно ли что библиотека скачалась с ошибками? Помогите пожалуйста хотя бы понять куда копать
похоже, они накосячили, и должно быть var TwitchJs = require('twitch-js').default;
Помогло, спасибо большое. А можно ссылку где про это почитать? Или что гуглить)
а это уже сложнее... в ноде есть два формата модулей: старый CommonJS и новый ES Modules. в новом формате есть дефолтный экспорт (то значение, котрое импортиуется при import value from 'module'). в старом такого нет. если я ничё не напутал, этот "странный" default генерит ТайпСкрипт (на наём написана либа) при генерации CommonJS-кода. если использоать либу из того же тайпскрипта, будет ок. если из ЖСа в режиме CommonJS (т.е. через require(...)) — будет явный default. а ещё у этой же либы есть EMS версия, она импортируется через import TwitchJs from 'twitch-js', дефолтный экспорт там подхватывается правильно, и default рукми писать не нужно
Интересно, весьма признателен за подробное объяснение)
Обсуждают сегодня