2015-11-13 75 views
0

我是一位经验丰富的流星开发人员,也是d3的经验丰富......但我不能让他们一起工作!d3.js流星中未定义

我曾尝试:

​​,它崩溃并产生:

d3 is not defined

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>崩溃并产生:

d3 is not defined

<script src="d3.min.js" charset="utf-8"></script>,在我的项目的顶级源目录,其崩溃并产生:

TypeError: Cannot call method 'querySelector' of undefined

(前两个都在我的index.html文件的文件头)

所有的同时,D3仍然是不确定的,我的浏览器。

我更新了我的所有软件包和流星,并且除了d3js:d3之外还关闭了每个流星软件包。

寻找一个解决方案(对我的潜在白痴)或工作。

编辑

添加: pete:jsdom产生新的错误消息:

/Users/Admin/.meteor/packages/pete_jsdom/.0.0.2.1uo6lix++os+web.browser+web.cordova/npm/node_modules/jsdom/lib/jsdom.js:3 `jsdom 4.x onward only works on io.js or Node.js 4 or newer: https://github.co

+0

你所说的第一个'崩溃意味着和produces'?这是什么时候发生的?已经在你运行'meteor add'或者只有当你启动应用程序时? –

回答

2

在我看来,你有其他地方的错误。下面的作品在我的机器上完美的罚款(OSX):

meteor create d3 
cd d3 
meteor add d3js:d3 
meteor 

然后,打开浏览器,我可以在控制台下:

> typeof(d3) 
"object" 

> _.keys(d3) 
["version", "ascending", "descending", "min", "max", "extent", "sum", "mean", "quantile", "median", "variance", "deviation", "bisectLeft", "bisectRight", "bisect", "bisector", "shuffle", "permute", "pairs", "zip", "transpose", "keys", "values", "entries", "merge", "range", "map", "nest", "set", "behavior", "rebind", "dispatch", "event", "requote", "selection", "ns", "select", "selectAll", "mouse", "touch", "touches", "interpolateZoom", "color", "hsl", "hcl", "lab", "rgb", "functor", "xhr", "dsv", "csv", "tsv", "timer", "round", "formatPrefix", "time", "locale", "format", "geo", "geom", "interpolateRgb", "interpolateObject", "interpolateNumber", "interpolateString", "interpolate", "interpolators", "interpolateArray", "ease", "interpolateHcl", "interpolateHsl", "interpolateLab", "interpolateRound", "transform", "interpolateTransform", "layout", "random", "scale", "svg", "transition", "text", "json", "html", "xml"] 
+0

Im getting '''typeof(d3) “undefined”''' – redress

+0

太奇怪了......我创建了一个新的meteor实例并且d3加载正常。猜猜我的东西不好。谢谢@christian – redress

+0

很高兴我可以帮到 –

1

不确定你是否已经包含了这一点,但try adding JSDOM

As of d3#3.5.4, JSDOM is a development dependency. You will need to include it as a dependency.

+0

检查更新张贴...不知道这是正确的做法 – redress

+0

@redress Hm,你为什么不能升级到最新版本的节点? 4.0或5.0会做。 – nick

0

确保只在客户端上引用D3。它不适用于服务器端,因此在服务器端使用它会使应用程序崩溃。

0

使用

meteor npm install d3 

,而不是

meteor add d3js:d3 

它为我

+0

请先看看这个[如何回答](https://stackoverflow.com/help/how-to-answer) 这个问题已经回答了,显然,你可以添加你的答案在这里。但是在回答之前你需要了解一些观点。首先,不要添加之前添加了相同代码或建议的答案。其次,如果用户非常具体地询问了问题以及他需要解决什么问题,请不要添加过于复杂的答案。第三,如果您想就回答或问题提出任何建议,您可以添加评论。 –

+0

我不太确定我的答案与此处的任何答案相同。我的建议是使用d3 npm包而不是流星包。 – Xiaoxing