2014-12-03 47 views
4

下面是我所做的:在Ember CLI中访问第三方库(如D3)的正确方法?

bower install d3 --save 

然后加入Broccoli.js

app.import('bower_components/d3/d3.js'); 

然后在我看来,说:

import d3 from 'bower_components/d3/d3'; 

,并试图使用它。

这会在启动应用程序时导致问题。在devtools我看到这个错误:

Uncaught TypeError: Cannot read property 'length' of undefined vendor.js:40 
Module vendor.js:52 
define vendor.js:88532 
(anonymous function) vendor.js:88534 
(anonymous function) 

所以我猜,我包括了错误的方式。

我试图避免将东西添加到.jshintrc中,并且将所有导入显式替换,但目前为止没有运气。所以我也试过:

不要在我的模块中导入d3,而只需将d3添加到jshint的predef。没有运气,同样的问题。

你们是怎么做到这一点的?

谢谢!

+6

这绝对不是题目。对于发现这些错误的人来说,解决方案非常有用。 – 2014-12-03 22:48:36

回答

2

我安装了错误的loader.js版本。应该是1.0.1,而我有2.1.1。现在一切正常!