简体   繁体   English

如何用NPM软件包中的ES6导入替换CDN导入?

[英]How to replace CDN import with ES6 import from NPM packages?

I am trying to replace this: 我正在尝试替换为:

<!-- 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>

With import directives: 使用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

Unfortunately it does not work and it is yet very cumbersome. 不幸的是,它不起作用,而且非常麻烦。 I cannot use do: 我不能使用do:

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

Is there a simple way to do this? 有没有简单的方法可以做到这一点?

Go into node_modules and find pro4j open up the code and check what is exported. 进入node_modules ,找到pro4j打开代码并检查导出的内容。 If there's a class exported than you can do import ThatClass from [nodeModuleFolderName] . 如果要导出一个类,则可以import ThatClass from [nodeModuleFolderName] If there are just lots of functions exported you can for example import them all at once with import * as Whatever from [nodeModuleFolderName] . 如果仅导出了许多函数,则可以例如使用import * as Whatever from [nodeModuleFolderName]一次import其全部import * as Whatever from [nodeModuleFolderName]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM