每次调用esri-loader的包都须要去引入,就很麻烦

偶尔发现的新鲜写法

import { loadModules } from "esri-loader";// 配置arcgis中各个包与绝对应的门路const __arcgisUrl = {  MapView: "esri/views/MapView",  Map: "esri/Map",};// 不暴漏在外的存储对象const __arcgis = {};// 定义裸露的arcgis变量const arcgisPackage = new Proxy(  {},  {    // 拦挡取值    async get(target, key) {      // console.log(key, receiver);      // console.log(config);      let val = {};      if (typeof __arcgis[key] === "undefined") {        [val] = await loadModules([__arcgisUrl[key]], {          url: "http://***.***.***.***:8686/415/init.js",          dojoConfig: {            baseUrl: "http://***.***.***.***:8686/415/dojo",          },        });        __arcgis[key] = val;      } else {        val = __arcgis[key];      }      return val;    },    set() {      console.warn("arcgisPackage对象属性不能赋值");    },  });export default arcgisPackage;

原作者
https://segmentfault.com/u/yo...
vue组件调用

import arcgisPackage from "@/config/arcgisTools";methods:{   test(){     let MapView = await arcgisPackage.MapView;   }}