主D3模块名称空间是否不会随着边缘子模块的增加而更新?

时间:2018-11-13 00:30:53

标签: d3.js

我正在尝试使用d3.group,它是几天前发布的d3数组子模块的一个非常新的功能。我正在使用yarn / webpack工作流程和import语句像这样拉入D3:

import * as d3 from 'd3';

但是,当我尝试使用d3.group时,它不起作用。

console.log(d3.group)

返回未定义。

要解决这个问题,我必须安装最新版本的d3-array并将其分配给新的命名空间。

import * as d3Array from 'd3-array';
console.log(d3Array.group)

这成功返回了函数。

所以我的问题是,当Bostock或其他D3开发人员更新子模块时,这些更新是否要等到进行重大更新时才添加到D3主命名空间中?每当我想使用一个真正的新功能时,是否有必要从子模块中拉出?

1 个答案:

答案 0 :(得分:0)

考虑到最新的d3阵列中没有最新的d3阵列,而您正在使用webpack / yarn

您可以轻松地将模块加载到d3.*上,安装最新的模块,然后将它们包装在一起,

示例:         //选择所有d3模块并将其保存在d3.js中         //然后将其加载到脚本中->从'./d3'导入d3;         从“ d3-选择”中导入{select,selectAll}         从“ d3-array”导入{group}

    const d3 = Object.assign(
      {},
      {
        select,
        selectAll,
        group,
      }
    )
    export default d3;

ref:https://www.giacomodebidda.com/how-to-import-d3-plugins-with-webpack/