我正在尝试使用d3.group
,这是几天前发布的d3阵列子模块的一个非常新的添加。我正在使用yarn/webpack工作流和导入语句来引入D3,如下所示:
import * as d3 from 'd3';
然而,当我尝试使用d3.group
时,它没有起作用。
console.log(d3.group)
返回未定义的。
为了解决这个问题,我不得不安装最新版本的d3数组,并将其分配给一个新的命名空间。
import * as d3Array from 'd3-array';
console.log(d3Array.group)
这成功地返回了函数。
所以我的问题是,当Bostock或其他D3开发人员更新子模块时,更新是否会在重大更新之前添加到主D3命名空间?每次我想使用一个真正的新功能时,是否有必要从子模块中提取?
考虑到最新的d3数组不是最新的d3捆绑包上的数组,并且您使用的是webpack/yarn
你可以很容易地在d3.*
上加载模块,安装最新的模块,然后包装在一起,
示例://选择所有d3模块并将其保存在d3.js上//然后将其加载到您的脚本上->从'导入d3/d3’;从"d3 selection"导入{select,selectAll}从"d3数组"导入{group}
const d3 = Object.assign(
{},
{
select,
selectAll,
group,
}
)
export default d3;
参考:https://www.giacomodebidda.com/how-to-import-d3-plugins-with-webpack/