SuperMap/iClient-JavaScript

升级到 11.1.0报错

Closed this issue · 9 comments

lovesL commented

Request a feature or report a bug? [这是一个需求还是一个缺陷]

One-line summary [问题简述]

image

Version [产品及版本]

  • iClient product (for leaflet,for openlayers,for mapboxgl,classic)[iClient 产品]:
  • iClient version [iClient 版本]:^11.1.0
  • Browser version [浏览器类型和版本]:
  • OS Version [操作系统类型和版本]:

Actual Behavior [当前现象]

Expected Behavior [期望现象]

Example of reproducing the issue [重现现象的例子]


What is motivation or use case for changing the behavior? [需求的场景和目的是什么?]

godeev commented

我这也遇到了这个问题, npm install @supermap/iclient-leaflet , 最新版本是 11.1.0-a, 引入后使用超图封装的方法, 例如: TiandituTileLayer , 就会报下面的错误, 超图自己引用的依赖插件报错了, 赶紧解决下吧

image

这个是因为iClient-Javascript引入的三方库所依赖的node模块缺失导致的报错。webpack5和vite默认没有包含node相关模块。
解决方案如下:
方案一: 等待11.1.1版本发布
方案二:如果使用webpack5, 可以 配置按需引入
方案三:安装配置对应的node模块, 以webpack5为例 ,
(1)首先安装依赖
npm i stream-http https-browserify stream-browserify tty-browserify browserify-zlib os-browserify buffer url assert process events util -D
(2)配置webpack.config.js
module.exports: { resolve: { alias: { process: 'process/browser', }, mainFields: ['browser', 'main'], fallback: { fs: false, http: require.resolve('stream-http'), https: require.resolve('https-browserify'), os: require.resolve('os-browserify/browser'), stream: require.resolve('stream-browserify'), tty: require.resolve('tty-browserify'), zlib: require.resolve('browserify-zlib'), assert: require.resolve('assert'), util: require.resolve('util'), events: require.resolve('events') } } plugins: [ new webpack.ProvidePlugin({ process: 'process/browser', Buffer: ['buffer', 'Buffer'] }), ] }

godeev commented

vite 的配置按需引入还是报这个错, 这样的话是不是只能等待 11.1.1 或者 回退版本到 11.0.1 啊 ?

webpack才有按需引入的配置, vite没有;
vite同样安装配置对应的node模块也可以
1.安装 npm i buffer events os-browserify util -D
2.配置vite.config.js

export default defineConfig({
  define: {
    'process.env': {},
    'process.version': `''`,
  },
  resolve: {
    alias: {
      os: 'os-browserify/browser'
    },
  },
});

godeev commented

请问, 什么时候能升级到11.1.1呀, 能不能尽快解决这些问题, 赶紧上线

godeev commented

webpack才有按需引入的配置, vite没有; vite同样安装配置对应的node模块也可以 1.安装 npm i buffer events os-browserify util -D 2.配置vite.config.js

export default defineConfig({
  define: {
    'process.env': {},
    'process.version': `''`,
  },
  resolve: {
    alias: {
      os: 'os-browserify/browser'
    },
  },
});

这个按照您提供的方案, 本地开发没问题, 但是线上报错了
企业微信截图_16950213961332

加个配置: 'process.browser': ''``
image

godeev commented

加个配置: 'process.browser': ''`` image

请问, 现在我如果升级到11.1.1, 还会有上面的这些问题吗? 我还用安装这些依赖吗? npm i buffer events os-browserify util -D, 还需要在 define 以及 alias 里面添加这些代码吗?

@godeev
11.1.1已经修复了这个问题, 不用再安装buffer等依赖和配置defined和alias