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

时间:2018-04-29 22:38:09

标签: ember.js import browserify npm-install

此问题与my earlier question

有关

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

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

我已关注instructions to use ember-browserify,然后启动了ember dev服务器(ember s)。

导入如下:

import Howl from "npm:howler";

我也试过这个:

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

和此:

import {Howl} from "npm: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的示例代码是here,据我所知,我正在做的是与这些示例一致。

欢迎任何建议。

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

编辑:此问题已被标记为How to use third party npm packages with ember cli app的“可能重复”。经过仔细研究,我认为很明显并非如此。引用的问题没有提到我在我的问题中提到的具体错误信息,“......不是构造函数”,该问题的OP也没有使用ember-browserify,这是我的问题的一个组成部分。

1 个答案:

答案 0 :(得分:4)

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

import howler from ‘npm:howler’;

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