Import 使用@mapbox而不是';地图盒gl';导入映射框的步骤

Import 使用@mapbox而不是';地图盒gl';导入映射框的步骤,import,mapbox-gl-js,Import,Mapbox Gl Js,我想减少映射框依赖项的数量。在一个大量使用Mapbox的React Web应用程序中,我目前在javascript文件中导入Mapbox,如下所示: import mapboxgl from 'mapbox-gl'; import 'mapbox-gl/dist/mapbox-gl.css' 从这个mapboxgl导入中,我实例化了一个map、弹出窗口、一个GeolocateControl和一个NavigationControl。这一切都很好 我还需要正向和反向地理编码,我使用这些导入: im

我想减少映射框依赖项的数量。在一个大量使用Mapbox的React Web应用程序中,我目前在javascript文件中导入Mapbox,如下所示:

import mapboxgl from 'mapbox-gl';
import 'mapbox-gl/dist/mapbox-gl.css'
从这个mapboxgl导入中,我实例化了一个map、弹出窗口、一个GeolocateControl和一个NavigationControl。这一切都很好

我还需要正向和反向地理编码,我使用这些导入:

import Geocoder from '@mapbox/mapbox-gl-geocoder';
import '@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css';
const mbxGeocoding = require('@mapbox/mapbox-sdk/services/geocoding');
const geocodingClient = mbxGeocoding({ accessToken: mapboxgl.accessToken });
这些也很好用。是否可以将“mapbox gl”中的
导入mapboxgl及其.css导入替换为与我用于地理编码器的导入类似的特定导入?比如:

import Map from '@mapbox/mapbox-gl-map';
弹出窗口、geolocatecontrol和navigationcontrol也一样?理想情况下,我希望能够删除“mapbox gl”依赖项,只使用@mapbox依赖项。这些是我当前在package.json文件中的mapbox依赖项

  "dependencies": {
    "@mapbox/mapbox-gl-geocoder": "^4.7.0",
    "@mapbox/mapbox-sdk": "^0.11.0",
    "mapbox-gl": "^1.12.0"
  }

这里似乎描述了我要查找的内容:,但我还无法从那里显示的任何导入中实际实例化映射。我还尝试在codepen上查看mapbox项目,但由于codepen稍微模糊了导入过程,这也没有任何帮助。

看起来mapbox SDK的体系结构特别允许单独使用服务,而无需导入整个库。这是有道理的——例如,反向地理编码和路由之间没有明显的依赖关系

但是Mapbox GL并不是这样设计的,而且考虑到您使用了大量的库(地图、弹出窗口、地理位置控制、导航控制),很难看出您将获得什么好处


(如果我没有弄错的话,将所有这些东西作为独立的依赖项导入会增加,而不是减少依赖项的数量,这与您的目标背道而驰?

看起来Mapbox SDK的体系结构特别允许使用单独的服务,而无需导入整个库。这是有道理的——例如,反向地理编码和路由之间没有明显的依赖关系

但是Mapbox GL并不是这样设计的,而且考虑到您使用了大量的库(地图、弹出窗口、地理位置控制、导航控制),很难看出您将获得什么好处


(如果我理解正确,将所有这些东西作为独立的依赖项导入会增加,而不是减少依赖项的数量,这与您的目标背道而驰?

啊,好吧,我只是想既然我的package.json文件中已经有了@mapbox/mapbox sdk,我可以从中获得更多的里程数,并使用它来实例化我需要的所有地图内容。你说得对,这会增加依赖项的数量,但我认为总体布局会更轻,但我想不会。啊,好吧,我只是想,既然我的package.json文件中已经有了@mapbox/mapbox sdk,我可以从中获得更多里程数,并使用它来实例化我需要的所有地图内容。你是对的,这会增加依赖项的数量,但我认为总体足迹会更轻,但我猜不会。