首页 > 编程语言 >升级ArcGIS API for JavaScript 4.26踩坑指南

升级ArcGIS API for JavaScript 4.26踩坑指南

时间:2023-03-08 14:12:43浏览次数:66  
标签:node plugin babel JavaScript js ArcGIS API proposal loader

背景

    之前有个老项目用了4.23 的版本,就想着升级到最新,万万没想到折腾了一天,踩了不少坑终于搞好了。

版本升级问题

    首先升级版本不是改下版本好就行,还要配置解析插件,设置了webpack插件,因为
新版本的 API引用 optional chainingnullish coalescing,导致Webpack出现解析错误,要安装新的解析器才可以。

"@arcgis/core": "4.26.0",
"@babel/core": "^7.18.9",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"babel-loader": "^8.2.5"

f4d4f05ecbd59f7a9ffe5f846ebedc9.png

    但是我运行起来发现还不对,运行起来浏览器老有这些错误,经过一番尝试原来要这样,限制只对arcgis和esri的包起作用
09b9a7b312fb6f5c7234bd765594b61.png

module: {
  rules: [
    {
      test: /.m?js$/,
      include:  [ path.resolve(__dirname, './node_modules/@esri/'),path.resolve(__dirname, './node_modules/@arcgis/')],
      use: {
        loader: "babel-loader",
        options: {
          plugins: [
            ["@babel/plugin-proposal-nullish-coalescing-operator", { loose: true }],
            ["@babel/plugin-proposal-optional-chaining", { loose: true }]
          ]
        }
      }
    }
  ]
}

image.png

worker打包问题

    参考esri的官方项目,研究怎么打包worker依赖,发现运行build:rollup老有问题,一看问题代码提示找不到node:process,查到错误提示处发现要用到node进程,原来是因为node版本太低,14版本的是process,16之后就是node:process,于是更新一下就可以了,一定要用打包出来的chunk和RemoteClient.js,以及对应的loader,把chunk、RemoteClient.js、s.min.js拷贝进项目里

参考资料:

https://github.com/Esri/jsapi-resources/tree/main/esm-samples/jsapi-custom-workers

https://blog.csdn.net/qq_34443031/article/details/127285197

标签:node,plugin,babel,JavaScript,js,ArcGIS,API,proposal,loader
From: https://www.cnblogs.com/polong/p/17191810.html

相关文章

  • 【JavaScript UI库和框架】上海道宁与Webix为您提供用于跨平台Web应用程序开发的JS框
     Webix是Javascript库一种软件产品用于加速Web开发的JavaScriptUI库和框架Webix用于跨平台Web应用程序开发的JS框架102个UI小部件和功能丰富的CSS/HT......
  • [java高级]-Stream API说明
    1、StreamAPI说明Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是StreamAPI。StreamAPI(java.util.stream)把真正的函数式编程风格引入到......
  • [java高级]-强大的Stream API
    1、StreamAPI说明Java8中有两大最为重要的改变。第一个是Lambda表达式;另外一个则是StreamAPI。StreamAPI(java.util.stream)把真正的函数式编程风格引入到......
  • JavaScript上传文件夹的三种解决方案
    ​ 前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对Http协议较模糊,故这次采用渐进的方式来学习文件上传的......
  • Yapi部署使用
    Yapi部署使用部署依赖注意nodejs版本,版本太高会部署失败。安装部署版本1.8.5nodejs:v12.20.0直接部署即可,安装教程比较多,不赘述。Yapi使用感想chrome、charls导出的har文件......
  • 开源API越权漏洞检测系统推荐:IDOR_detect_tool
    相信大部分读者跟我一样,每天都在写各种API为Web应用提供数据支持,那么您是否有想过您的API是否足够安全呢?Web应用的安全是网络安全中不可忽视的关键方面。我们必须确保其We......
  • vue2与vue3不同点:opitons api 与cmposition api
    vue2:optionsapi采用的是命令式编程,而vue3组合式api采用的是函数式编程,两者存在很大的差异,vue3更灵活,难度也更大。script语法糖,vue3可以通过导入函数的方式来定义响应......
  • FastAPI - Get
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#默认接口文档http://127.0.0.1:8000/[email protected]("/")defindex():  '''这是首页'''  return"this......
  • FastAPI -Post
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#仅支持[email protected]("/login1")deflogin():  return{"msg:loginsuccess1"}#支持POST,GET,[email protected]......
  • FastAPI - Parameter
    fromfastapiimportFastAPIimportuvicornapp=FastAPI()#访问方式:http://127.0.0.1:8000/[email protected]("/user")defuser(id):       #id为接......