javascript - 未捕获的语法错误:无法在具有 OpenLayers 的模块外部使用 import 语句
问题描述
我是使用 OpenLayers 的新手(一个开源 JavaScript 库,用于在 Web 浏览器中将地图数据显示为滑动地图)。我将它与 Thymeleaf(一种 Java XML/XHTML/HTML5 模板引擎,可以在 Web 和非 Web 环境中工作)一起使用。
我有这段代码:
<div class="windowContentMap">
<div id="map" class="map"></div>
<script>
/*<![CDATA[*/
import '/pradera/css/ol.css';
import Map from '/css/Map';
import View from '/css/View';
import TileLayer from '/css/layer/Tile';
import OSM from '/css/source/OSM';
var map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new View({
projection: 'EPSG:4326',
center: [0, 0],
zoom: 2
})
});
/*]]>*/
</script>
</div>
</div>
但是就行导入'/pradera/css/ol.css';
我有这个错误:
Uncaught SyntaxError: Cannot use import statement outside a module
解决方案
这是因为,正如错误所述,您不能import
在 ES6 模块之外使用该语句。
为了解决这个问题,通过添加type="module"
到您的脚本标签将您的脚本制作成一个模块,例如:
<div class="windowContentMap">
<div id="map" class="map"></div>
<script type="module">
/*<![CDATA[*/
import '/pradera/css/ol.css';
import Map from '/css/Map';
import View from '/css/View';
import TileLayer from '/css/layer/Tile';
import OSM from '/css/source/OSM';
var map = new Map({
layers: [
new TileLayer({
source: new OSM()
})
],
target: 'map',
view: new View({
projection: 'EPSG:4326',
center: [0, 0],
zoom: 2
})
});
/*]]>*/
</script>
</div>
</div>
推荐阅读
- flutter - 未为“事务”类型定义运算符“[]”。尝试定义运算符'[]'
- c# - 我应该如何以及为什么要使用事件和委托
- arrays - ActiveRecord Rails:查询“where”结合不同的条件
- sql - SQL:迁移到历史正确的时态表?
- javascript - 在响应中呈现带有文件的页面
- python - Python Seaborn:分组箱线图
- flutter - Flutter Bloc - mapEventToState 只执行一次
- python - 如何计算熊猫数据集中类的频率
- python - 如果满足条件,如何返回 numpy 数组的第三个元素?
- java - 当涉及聚合类时,如何将用户输入输入到数组列表中?