Emberjs / ember-browserify: «Х не конструктор»? - PullRequest
0 голосов
/ 30 апреля 2018

Этот вопрос относится к моему предыдущему вопросу .

Попытка использовать howler.js (https://github.com/goldfire/howler.js#documentation) в контроллере.

Аддона для Howler нет, но он существует в виде пакета npm.

Я следовал инструкциям , чтобы использовать ember-browserify , а затем запустил сервер ember dev (ember s).

Импорт выглядит так:

import Howl from "npm:howler";

Я тоже пробовал это:

import {Howl as Howl} from "npm:howler" ;

и это:

import {Howl} from "npm:howler" ;

Во всех случаях, когда я пытаюсь использовать Howler следующим образом:

var sound = new Howl({
    src: ['https://example.com/foo.mp3']
});
sound.play();

Я получаю сообщение об ошибке в консоли (первый импорт показан выше):

Uncaught TypeError: _npmHowler.default is not a constructor

или (второй и третий импорт показаны выше):

Uncaught TypeError: _npmHowler.Howl is not a constructor

Пример кода для Howler здесь , и насколько я вижу, то, что я делаю, соответствует этим примерам.

Любые предложения приветствуются.


FWIW: это тот же код, что и упомянутый здесь , но после этого вопроса я перешел к использованию ember-browserify


РЕДАКТИРОВАТЬ: Этот вопрос был помечен как «возможно, дубликат» Как использовать сторонние пакеты npm с приложением ember cli . При ближайшем рассмотрении я думаю, что ясно, что это не так. В цитируемом вопросе не упоминается конкретное сообщение об ошибке, которое я упоминаю в своем вопросе «... не является конструктором», а также в ОП этого вопроса не используется ember-browserify, который является неотъемлемой частью моего вопроса.

1 Ответ

0 голосов
/ 30 апреля 2018

Howler, вероятно, экспортирует больше, чем функция конструктора, поэтому вам нужно убедиться, что вы обращаетесь к этой части модуля:

import howler from ‘npm:howler’;

let sound = new howler.Howl(...)
...