D3库可以和Electron(Atom shell)一起使用吗?

Electron的网站表示,使用电子制作的应用程序可以访问节点模块。 他们可以访问D3库吗? 如果是这样,怎样才能成立呢?

D3可作为Node.js模块使用 ,可以导入到您要用于呈现可视化应用程序的JavaScript代码中。

作为如何将D3集成到Electron应用程序的示例,请查看GitHub上的D3 Space Filler Explorer应用程序。 此应用程序可视化磁盘空间使用多个D3饼图和D3树形图。

我发现一个有用的模式是将SVG元素注入到D3可视化中,它不同于在可视化中创buildSVG元素的D3示例中的常用方法。 在/app/js/pie-chart.js和/app/js/treemap-chart.js文件中查看依赖关系注入的示例。

所有(至less在理论上)纯JS模块都与​​电子兼容,因为它还提供了(CommonJS)JavaScript运行时环境(io.js)。

唯一重要的是电子不会自动设置NODE_PATHvariables,也不会在require模块的系统/全局模块path中查找。 所以你只需要确定你的d3.js上有d3.js的path:

 NODE_PATH="/PATH/TO/d3.js" electron /PATH/TO/APP 

我们在我们的工作团队用npm安装d3来解决这个问题:

npm install d3 --save

并在index.html中我们把这个:

<script>var d3 = require("d3")</script>

我们从nv.d3.js第18行得到了这个问题,有一个小函数需要d3作为节点模块,在我们的应用程序中,我们在bower_components中使用它,所以用npm安装它并直接从node_modules请求索引正如我所说可能会解决这个问题,就像它与我们一样。