[更新]:事實證明,npm版本D3不起作用,我更改爲CDN版本,一切正常,但我仍然想知道什麼是錯的require(「d3 「)爲什麼D3不工作在NW.js
所有:
我非常新的NW.js,目前我想在它使用D3,但連基本的d3.select不能工作,任何想法?唯一的一點工作,選擇是d3.select("body")
<div id="app"></div>
<script>
var d3 = require("d3");
function barChart(){
var width, height;
function render(root){
root.append("svg")
.attr({
width:width,
height:height
})
.append("rect")
.attr({
width: 0.5*width,
height: 0.5*height
})
.style({
fill:"red"
})
}
render.width = function(value){
if(value != undefined){
width = value;
return render;
}
return width;
}
render.height = function(value){
if(value != undefined){
height = value;
return render;
}
return height;
}
return render;
}
// this does not work
var root = d3.select("#app");
var chart = barChart();
chart.width(400).height(400)
chart(root);
</script>
感謝
謝謝,所以你的意思是我不能像require(「d3」)一樣使用DOM的方式? – Kuan
DOM是瀏覽器上下文的一部分,而不是節點上下文。在節點上下文中,您沒有DOM和所有其他瀏覽器API(因爲它是節點)。但是,通過在節點上下文中傳遞DOM元素,您可以使用節點上下文中的DOM。無論如何,如果你想使用瀏覽器庫 - 在瀏覽器上下文中加載它。如果節點lib - 在節點上下文中加載它。例如,一些圖書館可以在節點和瀏覽器中工作 - 例如,moment.js。 – VoidVolker
謝謝,我還沒有想到的一件事是,如果我只是在不考慮順序的情況下包含它們,我如何管理依賴關係? – Kuan