2017-03-14 76 views
1

我對mapbox-gl-js有一個奇怪的問題。當我將mapbox-gl.js文件作爲CDN添加到html文檔頭時,地圖呈現效果良好。當我需要它,並browserify捆綁它作爲記錄,地圖不會渲染,我得到一個錯誤的捆綁像這樣:Error: Cannot find module './feature' from '/home/.../mbtst/node_modules/mapbox-gl/dist'mapbox-gl-js在與browserify捆綁時不會渲染

該文檔描述瞭如何使用一個模塊捆綁: https://www.mapbox.com/mapbox-gl-js/api/。 在發佈這個問題,這是(它已被由於改變了這個問題)的時間:

npm install --save mapbox-gl 
import mapboxgl from 'mapbox-gl/dist/mapbox-gl'; 
// or "const mapboxgl = require('mapbox-gl/dist/mapbox-gl');" 

我的地圖開始是這樣的:

mapboxgl.accessToken = 'pk.eyJ1IjoiZWxsdnRyemVnIiwiYSI6ImNpejl4M2M0NDAxbWoycXRlanZnc283dnYifQ.sPFCSTsdlCOp1hk6afDvJg'; 
this.map = new mapboxgl.Map({ 
    container: 'map-container', // container id 
    style: 'mapbox://styles/mapbox/streets-v9', 
    center: [6.16342, 62.47126], // aalesund 
    zoom: 11 
}); 

如果我只是需要模塊如require('mapbox-gl'); - 同樣的錯誤。

我甚至試圖保存從CDN源文件,並要求該文件 - 哪些抱怨缺少多個依賴項模塊。

的代碼在此回購: https://github.com/awesomemaptools/mbtst

PS:我需要捆綁脫機使用腳本在科爾多瓦的應用程序,即使用CDN是不是一種選擇。

+0

現在報告爲mapbox的bug:https://github.com/mapbox/mapbox-gl-js/issues/4453 – jollege

回答

2

事實證明,這是一個錯誤,在mapbox的人們正在努力解決這個問題,看到問題在這裏:https://github.com/mapbox/mapbox-gl-js/issues/4453

同時,我從mapbox-GL版本升級「^ 0.33.1」到「^ 0.34 .0" 和包括SRC,而不是DIST這樣當現在的作品有一種變通方法:

const mapboxgl = require('mapbox-gl/src/index.js'); 

我想,與以前的版本,但它沒有再工作。

+0

感謝您的解決方法。 – realph

0

您提供的代碼基本上沒問題。嘗試使用require而不是import

const mapboxgl = require('mapbox-gl/dist/mapbox-gl'); 

然後調用在終端執行以下操作:

browserify your-main-js-file.js > bundle.js 

這增加了你的代碼和所需的模塊,以創建JavaScript文件bundle.js,所以一切都應該是可用即使你的離線。

然後通過腳本標籤輸出包添加到您的HTML頁面:

<script src="bundle.js"></script> 

了一下更多詳情請參見https://github.com/substack/browserify-handbook#bundling-for-the-browser,檢查options browserify需要來定製你的包。

+0

謝謝,我實際上沒有任何使用browserify的困難,我一直在使用它幾個項目;在這個項目上〜3周;它與單張和其他一些依賴關係很好。 mapboxgl.Map被實例化並記錄到瀏覽器控制檯;但沒有任何呈現。 gitlab回購現在是公開的(暫時);你可以克隆它,並在瀏覽器中運行它,並喝一口。 – jollege

+0

嗨,感謝您在公開回購中提供您的代碼。不幸的是,我無法建立分支'mapbox-gl'。運行'gulp build:js'時出現錯誤:'錯誤:無法找到模塊lodash。_baseisequal'from'/ my/path/mbglcrd/node_modules/mapbox-gl/dist' – geofootballer

+0

稍後我會在乾淨的環境中嘗試。這可能是我提到的包含mapbox-gl模塊的錯誤嗎?嘗試評論模塊需求,它應該工作。我在回購順便改進了一些東西。 – jollege