2017-03-16 193 views
0

进口的JavaScript模块在我的代码我已经使用mapbox-GL-JS库使用这个导入创建地图:从第三方库

let mapboxgl = require('mapbox-gl/dist/mapbox-gl.js') 

工作正常。

现在我想用mapbox-gl.js中存在的DOM模块中的“创建”功能:this one to be more precise.

我希望我可以简单地使用:

mapboxgl.dom.create(arguments) 

但那么我得到错误消息:

Uncaught (in promise) TypeError: Cannot read property 'create' of undefined 

我可以使用库的'创建函数',如果是这样,如何?

回答

1

您实际上是require -ing的文件是index.js file,它不会导出dom符号,因为这是mapbox的内部实用程序。您可以随时复制文件dom.js并在需要时使用它,但是mapbox不会公开此文件供您使用。

编辑:

如果你有决心使用的文件,你可以直接要求它,但它是不可取的,因为mapbox可以决定改变或在任何版本升级中删除的功能。在我的情况下,我通过NPM安装包,所以我需要它像let mbDom = require('mapbox-gl/src/util/dom');

虽然这是可能的,但它是远远不可取的。

+0

太好了,谢谢。你能解释为什么在这个小提琴https://jsbin.com/matayut/edit?js,console,output线'''mapboxgl.util.extend(defaultGeoPositionOptions,this.options && this.options.positionOptions || { })'''的作品?小提琴使用图书馆的“html导入”,但我仍然不希望它能起作用,或者与上述不同? – musicformellons

+0

'util'被导出,'dom'不被导出。 'mapboxgl.util'从'util/util.js'文件中提取,它不会暴露'dom'模块 – Mobius

+0

你是对的。注意到'util'在最近的版本中不再被导出。 https://github.com/mapbox/mapbox-gl-js/issues/1408 –