我正在尝试在ES6项目中使用ES5(rtree)编写的库,但没有运气。
在我的ES6代码上,我这样做:
import PolygonLookup from '../../lib/rtree';
...
this.rtree = new PolygonLookup(geojson);//does not work
这不起作用,但是如果我删除导入,而是将标记上的rtree添加到我的html中,它可以完美地工作。
<script type="text/javascript" src="..\..\lib\rtree.js"></script>
this.rtree = new PolygonLookup(geojson); //works
我试图通过lebab将上述库转换为ES6,但它也不起作用。
答案 0 :(得分:1)
ES5 lib不以ES6兼容方式导出任何内容。这就是PolygonLookup
未定义的原因。您可以导入该库而不进行任何绑定:
import '../../lib/rtree';
这样PolygonLookup
将成为全局PolygonLookup
,就像您将lib包含script
标记, IF 一样,它已被添加为全局变量。并非所有库都明确地这样做。否则,您可以尝试script-loader(仅限Webpack):
import 'script-loader!../../lib/rtree';
or even
import PolygonLookup from 'script-loader!../../lib/rtree';
如果您选择的bundler / loader支持其他模块格式,并且库使用其中一种格式,那么您也可以使用常规ES6导入。