Open yanfeiyang1218 opened 2 years ago
是的,我测试后发现即使不用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就不会对其处理。要修改得地方为:
如此,应当可行。
已验证,方案可行,谢谢!
好的,我试一下。感谢
---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2022年09月15日 18:39 | | 收件人 | @.> | | 抄送至 | @.**@.> | | 主题 | Re: [kikitte/MVTImageryProvider] vite 加 vite-plugin-cesium里面引入使用会报错 (Issue #18) |
是的,我测试后发现即使不用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就不会对其处理。要修改得地方为:
将mapbox-gl.js的module.exports改为window.Mapbox
将MVTImageryProvider类所在的index.js文件中所有的关于Mapbox的使用改为window.Mapbox
如此,应当可行。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
vite会自动将cjs模块转换为esm,Mapbox Vector Tile Basic JS Renderer的_transformRequest之前在写法上有一点问题,修复之后就可以了,可以看看这个https://github.com/kikitte/MVTImageryProvider/issues/21#issuecomment-1617477186
vite会自动将cjs模块转换为esm,Mapbox Vector Tile Basic JS Renderer的_transformRequest之前在写法上有一点问题,修复之后就可以了,可以看看这个#21 (comment)
谢谢!
Cannot read properties of undefined (reading '_requestTransformFn') 构建的时候就抛出来了,是不是因为用的es5语法解析不了呢