d3.js - 主 D3 模块命名空间是否不会随着最前沿的子模块添加而更新?
问题描述
我正在尝试使用d3.group
,这是几天前发布的 d3-array 子模块的一个非常新的补充。我正在使用 yarn/webpack 工作流程和导入语句来拉入 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 命名空间吗?每次我想使用一个真正的新功能时,是否有必要从子模块中提取?
解决方案
考虑到最新的 d3-array 不在最新的 d3 捆绑包中,并且您正在使用 webpack/yarn
您可以轻松地在 上加载模块d3.*
,安装最新的模块并打包在一起,
示例: // 选择所有 d3 模块并将其保存在 d3.js // 然后将其加载到脚本中 -> 从 './d3' 导入 d3; 导入 { 选择,全选 } 从 'd3-selection' 导入 { 组 } 从 'd3-array'
const d3 = Object.assign(
{},
{
select,
selectAll,
group,
}
)
export default d3;
参考:https ://www.giacommodebidda.com/how-to-import-d3-plugins-with-webpack/
推荐阅读
- javascript - Javascript 对象道具
- sql - 你如何通过查询创建一个子组?
- hex - 接收二进制彩信
- java - 使用 Java lambda 在 aws s3 上读取文件
- azure - AKS Kubernetes 与 Azure DevOps Pipeline - helm 升级错误
- wordpress - wordpress 税务查询和元查询一起
- android - 在 ConstraintLayout 中为 View 设置权重
- kubernetes - 有状态集不转移到新节点
- bash - 在bash中检测文件中的现有字符串
- javascript - 如何在 Robot Framework 中使用 Execute Javascript driver.findElement(By.xpath