【问题标题】:d3.event is null in webpack buildd3.event 在 webpack 构建中为空
【发布时间】:2018-05-28 05:49:57
【问题描述】:

我有一个有效的 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 为空

我在阅读建议here时尝试为事件使用不同的名称

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

...但没有变化。这一切都过去了

import * as d3 from 'd3;

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

【问题讨论】:

  • 谢谢特里。我看了看。 link 看起来可能。希望它不会向拖动事件处理程序添加额外的代码 - 它会在构建时解决吗?

标签: javascript d3.js webpack


【解决方案1】:

感谢 Terry 的评论,我有来自 here 的解决方案:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2022-01-23
    • 2015-11-18
    相关资源
    最近更新 更多