2017-03-14 126 views
0

我試圖在ES6項目中使用編寫在ES5(rtree)中的庫文件,但沒有運氣。在ES6中導入ES5庫

在我ES6代碼我做的:

import PolygonLookup from '../../lib/rtree'; 
... 
this.rtree = new PolygonLookup(geojson);//does not work 

這是不行的,但是如果我去掉進口,而是增加一個標籤,以我的HTML它的作品完美的RTREE。

<script type="text/javascript" src="..\..\lib\rtree.js"></script> 

this.rtree = new PolygonLookup(geojson); //works 

我試圖通過lebab將上述庫轉換爲ES6,但它也不起作用。

+0

http://stackoverflow.com/questions/31708545/es6-import-vs-script-src-in-html – user93

+0

你可以傳輸你的ES 6代碼。您可以在大約12秒內將庫轉換爲ES 6。您可以簡單地訪問該庫幾乎肯定附加的全局變量。不知道這裏的問題是什麼。只是不要使用'import'。 –

+0

@JaredSmith,但我怎麼能將它轉換爲ES6?我嘗試了lebab,但它不輸出任何東西。 –

回答

2

ES5 lib不會以ES6兼容的方式導出任何東西。這就是爲什麼PolygonLookup未定義。您可以導入庫中沒有任何約束力:

import '../../lib/rtree'; 

這樣PolygonLookup將是全球PolygonLookup,就像如果你包括IF它已作爲一個全局變量具有script標籤的lib,。並非所有圖書館都明確這樣做。否則,你可以嘗試script-loader(只的WebPack):

import 'script-loader!../../lib/rtree'; 
or even 
import PolygonLookup from 'script-loader!../../lib/rtree'; 

如果您選擇的捆綁/加載器支持其它模塊格式,以及庫使用其中的一種,那麼你也可以使用一個普通ES6進口。

+0

不能使它與第1或第2個替代品一起工作,但它可能是我做錯了什麼(無論是在webpack配置還是在某處)。不管怎樣,最終可能會使用腳本標記。 –