我尝试使用RequireJS加载d3-selection-multi
和d3
v4。我的主要剧本是:
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"></script>
<script>
require.config({
paths: {
"d3": "//d3js.org/d3.v4.min",
"d3-selection-multi": "//d3js.org/d3-selection-multi.v1.min",
"d3-queue": "//d3js.org/queue.v1.min",
"underscore": "//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min",
"jquery": "//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min",
"jquery_easing": "//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min",
"bootstrap": "//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min",
"moment": "//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min"
}
});
</script>
但d3-selection-multi
需要d3-transition
和d3-selection
,因此,如果我添加这些内容,那么我会发现d3-transition
需要d3-color
,依旧等等。< / p>
普通的d3
v4与d3-selection
,d3-transition
,d3-color
以及所有这些相关吗?这是否意味着一旦我选择使用一个微库,那么我就无法使用正常的d3
,我需要定义其他相关微库的所有?< / p>
我想使用d3-selection-multi
,因此我没有必要重写所有.attr()
以使用{}
语法。
答案 0 :(得分:1)
如果您不想完全将应用程序切换到d3微库,可以通过requirejs map
配置将依赖项引用到捆绑的d3库。您可以找到所需的依赖项here。
requirejs.config({
paths: {
'd3': '...',
'd3-selection-multi': '...',
...
},
map: {
'*': {
'd3-color': 'd3',
'd3-dispatch': 'd3',
'd3-ease': 'd3',
'd3-interpolate': 'd3',
'd3-selection': 'd3',
'd3-timer': 'd3',
'd3-transition': 'd3'
}
}
});