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

hob*_*es3 9 requirejs d3.js

我试图加载d3-selection-multi连同d3使用V4 RequireJS.我的主要脚本是:

 <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>
Run Code Online (Sandbox Code Playgroud)

d3-selection-multi需要d3-transitiond3-selection,所以如果我添加那些,那么我发现d3-transition需要d3-color等等等等.

不正常的d3V4配备d3-selection,d3-transition,d3-color,和所有的?这是否意味着一旦我选择使用一个微库,那么我就不能使用正常d3而我需要定义所有其他依赖的微库?

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

Seb*_*Seb 1

如果您不想将应用程序完全切换到 d3 微库,您可以通过 requirejsmap配置引用捆绑的 d3 库的依赖项。您可以在此处找到所需的依赖项。

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'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)