ArcGIS API for JavaScript 4.18以后的版本4.18 4.19 4.20 4.21 4.22支持ES Modules模式了,默认的API是访问CDN的,内网本地化修改,竟然摸索了好久,分享出来。最终还是满读官网的参考文档解决的,具体链接:https://developers.arcgis.com/javascript/latest/es-modules/
以https://github.com/Esri/jsapi-resources/tree/master/esm-samples/jsapi-create-react-app,GitHub上React示例代码的本地化为例,步骤如下:
步骤:
1、npm或者yarn添加@arcgis/core包
2、将./node_modules/@arcgis/core/assets文件夹复制到public下
3、App.js
import esriConfig from "@arcgis/core/config.js";
esriConfig.assetsPath = "./assets";
4、index.css
@import "@arcgis/core/assets/esri/themes/light/main.css";
5、目录结构
App.js 代码
import React, { useRef, useEffect } from "react";
import Bookmarks from '@arcgis/core/widgets/Bookmarks';
import Expand from '@arcgis/core/widgets/Expand';
import MapView from "@arcgis/core/views/MapView";
import WebMap from "@arcgis/core/WebMap";
import "./App.css";
import esriConfig from "@arcgis/core/config.js";
esriConfig.assetsPath = "./assets";
index.css
@import "@arcgis/core/assets/esri/themes/light/main.css";
html,
body,
#root {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
6、以下为官方文档的截图: