Emberjs / ember-browserify:“X 不是构造函数”?

gla*_*con 1 import ember.js browserify npm-install

这个问题与我之前的问题有关

尝试在控制器中使用 howler.js ( https://github.com/goldfire/howler.js#documentation )。

Howler 没有插件,但它作为 npm 包存在。

我已按照说明使用 ember-browserify,然后启动了 ember 开发服务器 ( 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();
Run Code Online (Sandbox Code Playgroud)

我在控制台中收到错误消息(如上所示的第一次导入):

Uncaught TypeError: _npmHowler.default is not a constructor
Run Code Online (Sandbox Code Playgroud)

或(如上所示的第二个和第三个导入):

Uncaught TypeError: _npmHowler.Howl is not a constructor
Run Code Online (Sandbox Code Playgroud)

Howler 的示例代码在这里,据我所知,我所做的与这些示例一致。

欢迎任何建议。


FWIW:这是与这里提到的相同的代码体,但自从那个问题我已经开始使用ember-browserify


编辑:这个问题已被标记为“可能重复”如何使用第三方 npm 包与 ember cli app。仔细研究后,我认为很明显事实并非如此。引用的问题没有提到我在我的问题中提到的特定错误消息,“...不是构造函数”,该问题的 OP 也没有使用 ember-browserify,这是我问题的一个组成部分。

han*_*ars 5

Howler 可能导出的不仅仅是构造函数,所以你需要确保你正在访问模块的那部分:

import howler from ‘npm:howler’;

let sound = new howler.Howl(...)
Run Code Online (Sandbox Code Playgroud)