Как заменить импорт CDN на импорт ES6 из пакетов NPM? - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь заменить это:

<!-- Openlayers -->
<link rel="stylesheet" href="https://openlayers.org/en/latest/css/ol.css" />
<script type="text/javascript" src="https://openlayers.org/en/latest/build/ol.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.5.0/proj4.js" integrity="sha256-KJI74PS1qv3+hue+yyIWK/l8TxvS9u4WX7QDrtHkHOo=" crossorigin="anonymous"></script>

<!-- ol-ext -->
<link rel="stylesheet" href="https://cdn.rawgit.com/Viglino/ol-ext/master/dist/ol-ext.min.css" />
<script type="text/javascript" src="https://cdn.rawgit.com/Viglino/ol-ext/master/dist/ol-ext.min.js"></script>

С import директивами:

import * as proj from 'ol/proj'
import * as projProj4 from 'ol/proj/proj4'
import * as geom from 'ol/geom'
import * as layer from 'ol/layer'
import * as format from 'ol/format'
import * as source from 'ol/source'
import * as style from 'ol/style'
import proj4 from 'proj4'
import Placemark from 'ol-ext/overlay/Placemark'
// import 'ol-ext/dist/ol-ext.css'

window.ol = {
  proj: proj,
  geom: geom,
  layer: layer,
  format: format,
  source: source,
  style: style,
  Overlay: {}
}
window.ol.Overlay.Placemark = Placemark
window.ol.proj.proj4 = projProj4
window.proj4 = proj4

К сожалению, это не работает и все же очень громоздко. Я не могу использовать do:

import 'ol'
import 'ol-ext'
import 'proj4'

Есть ли простой способ сделать это?

1 Ответ

0 голосов
/ 29 июня 2019

Зайдите в node_modules и найдите pro4j, откройте код и проверьте, что экспортируется. Если существует экспортируемый класс, вы можете сделать import ThatClass from [nodeModuleFolderName]. Если экспортировано очень много функций, вы можете, например, import сразу их всех с помощью import * as Whatever from [nodeModuleFolderName].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...