问题描述
arcgis的docs中有几个例子,但是我不能正常使用。当我从 arcgis 导入 Map 时,如 example 所示:
import Map from '@arcgis/Map'
为什么它会尝试从资产下载文件?
解决方法
使用带有 ES 模块的 ArcGIS JS API,您需要将 @arcgis/core/assets
复制到构建目录。
这可以使用 ncp
npm 模块和设置 npm 脚本来完成。
// package.json
{
"script": {
"start": "npm run copy && react-scripts start","build": "npm run copy && react-scripts build","copy": "ncp ./node_modules/@arcgis/core/assets ./public/assets"
}
}
这是 ArcGIS JS API 文档列出的方法。 https://developers.arcgis.com/javascript/latest/es-modules/
或者,如果您使用 Webpack,您也可以使用 copy-webpack-plugin
来完成它。 https://www.npmjs.com/package/copy-webpack-plugin 然后在您的 webpack.config.js
const CopyWebpackPlugin = require('copy-webpack-plugin');
plugins: [
new CopyWebpackPlugin([
{ from: './node_modules/@arcgis/core/assets',to: './public/assets' },]
],