d3.event在webpack构建中为null

时间:2018-05-28 05:49:58

标签: javascript d3.js webpack

我有一个工作的D3 / React / Webpack系统,我试图通过不导入所有D3来减少构建大小。所以我有一个d3Import.js文件:

import { select, event } from 'd3-selection';
import { drag } from 'd3-drag';

export default { select: select, drag: drag, event: event };

,用

引用
import d3 from '../../d3Import.js';

一切都建立并且运行良好(除了上面显示的内容之外还有更多的导入),除了在例如查询事件时查询事件。拖拽事件。

onDrag = () => {
    const targetY = d3.event.y;

失败

TypeError:_d3Import2.default.event为null

我在阅读建议here

时尝试使用其他名称进行活动
import { select, event as currentEvent } from 'd3-selection';

......但没有变化。这一切都曾经与

一起使用
import * as d3 from 'd3;

但这似乎意味着在bundle.js中额外增加100k左右。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

感谢Terry的评论,我有OrderBy的解决方案:

onDrag = () => {
   d3.getEvent = () => require("d3-selection").event;
   const targetY = d3.getEvent().y;
}