Electron的网站称用电子制作的应用程序可以访问节点模块。他们可以访问D3库吗?如果是这样,怎么设置?
答案 0 :(得分:9)
D3以Node.js module形式提供,可以导入到您要用于呈现可视化应用程序的JavaScript代码中。
作为如何将D3集成到Electron应用程序的示例,请查看我在GitHub上的D3 Space Filler Explorer应用程序。该应用程序通过多个D3饼图和D3树形图可视化磁盘空间使用。
我发现有用的一种模式是将SVG元素注入到D3可视化中,这与D3示例中的常用方法不同,后者在可视化中创建了SVG元素。请参阅/app/js/pie-chart.js和/app/js/treemap-chart.js文件中的此依赖项注入示例。
答案 1 :(得分:2)
所有(至少在理论上)纯JS模块与电子兼容,因为它还提供(CommonJS)javascript运行时环境(io.js)。
唯一重要的是电子不会自动设置NODE_PATH
变量,也不会查看require
d模块的系统/全局模块路径。因此,您必须确保d3.js
上有NODE_PATH
的路径:
NODE_PATH="/PATH/TO/d3.js" electron /PATH/TO/APP
答案 2 :(得分:2)
我们在使用Npm安装d3的工作团队中解决了这个问题:
npm install d3 --save
在index.html中我们把它放在:
<script>var d3 = require("d3")</script>
我们从nv.d3.js第18行得到了这个问题,有一个小函数需要d3作为节点模块,在我们的应用程序中我们在bower_components中使用它,所以用npm安装它并直接在你的索引中请求来自node_modules,就像我说的那样可能会像我们一样解决这个问题。