kikitte / MVTImageryProvider

A Mapbox style renderer for CesiumJS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vite 加 vite-plugin-cesium里面引入使用会报错

yanfeiyang1218 opened this issue · comments

image
Cannot read properties of undefined (reading '_requestTransformFn') 构建的时候就抛出来了,是不是因为用的es5语法解析不了呢

是的,我测试后发现即使不用vite-plugin-cesium,在vite项目中使用MVTImageryProvider会报这个错误,原因是vite尝试将软件包中的mapbox-gl.js转换为ESM(Vite文档),but MVTImageryProvider所使用得mapbox-gl.js是一个commonjs包,vite在转换过程中出现了偏差。我目前对vite不是很熟悉,可能得以后有时间查看了,如果你知道在vite中如何避免转换成ESM的话那就可以解决这个问题。另一种可行的办法是将mapbox-gl.js作为可执行文件通过html的script标签引入,这样子vite就不会对其处理。要修改得地方为:

  1. 将mapbox-gl.js的module.exports改为window.Mapbox
    image
  2. 将MVTImageryProvider类所在的index.js文件中所有的关于Mapbox的使用改为window.Mapbox

如此,应当可行。

已验证,方案可行,谢谢!

vite会自动将cjs模块转换为esm,Mapbox Vector Tile Basic JS Renderer的_transformRequest之前在写法上有一点问题,修复之后就可以了,可以看看这个#21 (comment)

vite会自动将cjs模块转换为esm,Mapbox Vector Tile Basic JS Renderer的_transformRequest之前在写法上有一点问题,修复之后就可以了,可以看看这个#21 (comment)

谢谢!