升级ArcGIS API for JavaScript 4.26踩坑指南

背景

    之前有个老项目用了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

posted @ 2023-03-08 13:59  polong  阅读(436)  评论(0编辑  收藏  举报