我有一個Angular 2項目(這是簡單的快速啓動項目),而且我正在導入d3.js版本4.沒有使用d3的TypeScript定義,因爲它只是javascript。Angular 2 TypeScript項目通過npm安裝d3.js有什麼好處嗎?
在index.html的我添加的lib:
<script src="https://d3js.org/d3.v4.min.js"></script>
在打字稿app.component.ts,我引用d3.select()......,它工作正常 - 打圈:
d3.select("body").append("svg").attr("width", 50).attr("height", 50).append("circle").attr("cx", 25).attr("cy", 25).attr("r", 25).style("fill", "purple");
視覺,所以我從DefinitelyTyped安裝分型Studio代碼不承認D3 - 的IDE然後識別D3,我也得到代碼完成等:
typings install dt~d3 --save --global
現在,我嘗試了第二個項目,但去了npm
路線,npm install --save d3
我可以使用
<script src="node_modules/d3/build/d3.min.js"></script>
通過index.html中的node_modules引用d3.js但是,我不明白爲什麼我在這種情況下會使用npm嗎?我沒有在component.ts文件中使用d3的導入語句,並且無論如何它都可以正常工作。也許我在這裏錯過了一些東西?
d3在d3.min.js的全局範圍中定義,所以只要該文件包含在頁面中,就不需要導入任何東西。 Npm在這裏沒有增加任何好處(除了它爲你管理依賴) – WirelessKiwi
如果我沒有使用全局範圍...它會工作。我無法使用進口工作 – Ryan
我想這會,但我不熟悉typescripts項目。恐怕我無法幫你解決這個問題。 – WirelessKiwi