在RequireJS中加载d3-selection-multi和d3 v4的简单方法是什么?

时间:2016-08-21 06:09:24

标签: d3.js requirejs

我尝试使用RequireJS加载d3-selection-multid3 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-transitiond3-selection,因此,如果我添加这些内容,那么我会发现d3-transition需要d3-color,依旧等等。< / p>

普通的d3 v4与d3-selectiond3-transitiond3-color以及所有这些相关吗?这是否意味着一旦我选择使用一个微库,那么我就无法使用正常的d3,我需要定义其他相关微库的所有?< / p>

我想使用d3-selection-multi,因此我没有必要重写所有.attr()以使用{}语法。

1 个答案:

答案 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'
        }
    }
});