我試圖使用RequireJS加載d3-path
。望着精縮d3-path
源代碼,它看起來像它的兼容AMD-,因爲我看到的第一行:如何使用RequireJS加載依賴d3的腳本?
!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports):"function"==typeof define&&define.amd?define(["exports"],s):s(t.d3=t.d3||{})}
我index.html
看起來像
<script>
require.config({
paths: {
"d3": "https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min",
"d3-path": "https://d3js.org/d3-path.v1.min",
"underscore": "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min",
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"
}
});
</script>
而且,我是我的JS文件試圖加載d3.path()
看起來像
require([
"d3",
"d3-path",
"underscore"
],
function(
d3,
d3_path,
_
) {
// d3, d3_path, and _ are defined
// but d3.path() isn't defined
});
我可以通過做d3_path.path()
使用d3-path
但我禾理想地喜歡做d3.path()
。但是,如果我同時設置d3
和d3-path
到d3
然後d3-path
覆蓋d3
而我失去了主要d3
功能。
我也開放給RequireJS最佳實踐,因爲我不確定我是否使用最好的方法。謝謝!
我可以只加載d3/path例如嗎?,不加載'd3'? – drmartin
@drmartin您可以,但您只能訪問d3.path給出的功能,您將不會擁有d3的其餘部分。嘗試最後一個例子,不加載d3並查看結果。 – nikoshr