ES15导入作为另一个库的插件的库

时间:2018-08-20 21:14:33

标签: javascript reactjs d3.js import

我正在做一个React项目,但是库有问题。我想导入D3和一个名为d3-3d的插件,但是每当这样做时,d3-3d的向D3对象添加功能的本机功能都无法正常工作。

在较简单的项目中,只需插入脚本标签即可起作用:

<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://unpkg.com/d3-3d/build/d3-3d.min.js"></script>

,然后调用放置在d3上的名为_3d的新函数。例如:

d3
  ._3d()
  .scale(4)
  .origin(origin)
  .rotateX(startAngle)
  .rotateY(startAngle)
  .primitiveType("POINTS");

但是对于React,没有附加这样的方法。我不完全了解导入和导出的工作原理,但这是d3-3d源代码的片段,如果有帮助,它可以处理自己的导出。

(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
  (factory((global.d3 = global.d3 || {})));
}(this, (function (exports) { 'use strict';

...

exports._3d = _3d;

Object.defineProperty(exports, '__esModule', { value: true });

})));

我只想知道如何在我使用导入语法的React环境中获得与普通脚本标签相同的功能。

我已经尝试过这样的事情

import "d3-3d";
我听说的

只是针对库的副作用,但这没有用。都没有将其导入为d3_3d并将_3d方法作为属性放置在d3对象上。

谢谢!

1 个答案:

答案 0 :(得分:0)

import * as d3 from 'd3'; 
import { _3d } from 'd3-3d'; 
d3._3d = _3d;