使用d3插件进行汇总:未定义引用

时间:2017-03-08 10:09:42

标签: javascript d3.js module babeljs rollupjs

我使用汇总来制作自定义d3版本。我尝试使用d3-annotation plugin,但在构建完成后,我的控制台出现错误:ReferenceError: d3Dispatch is not defined 在构建文件中,似乎d3Dispatchd3Selection等所有属性都没有被翻译成#34;。 The require lines也消失了(这可能是正常的)。

这是汇总配置文件:

import { queue } from "d3-queue";
import { event, select, selectAll } from "d3-selection";
import { scaleLinear, scaleIdentity } from "d3-scale";
import { drag } from "d3-drag";
import { json } from "d3-request";
import { annotation, annotationCalloutCircle } from "d3-svg-annotation";

export {
    queue,
    event,
    select,
    selectAll,
    scaleLinear,
    scaleIdentity,
    drag,
    json,
    annotation,
    annotationCalloutCircle
}

它与gulp任务一起使用:

gulp.task('d3-rollup', function() {
    return rollup({
        entry: 'js/custom.d3.js',
        plugins: [
            babel(),
            nodeResolve({ jsnext: true }),
            commonjs(),
            rollup_uglify()
        ]
    }).then(function(bundle) {
        return bundle.write({
            format: 'umd',
            moduleName: 'd3',
            dest: 'js/d3.min.js'
        });
    });
});

我无法解决错误。我需要导入另一个属性吗?你知道吗?

1 个答案:

答案 0 :(得分:0)

这是项目的package.json的es6 / jsnext / module设置中的错误。它已在1.6.0及更高版本中得到解决。