vite 加 vite-plugin-cesium里面引入使用会报错
yanfeiyang1218 opened this issue · comments
是的,我测试后发现即使不用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
如此,应当可行。
已验证,方案可行,谢谢!
好的,我试一下。感谢
…---- 回复的原邮件 ----
| 发件人 | ***@***.***> |
| 日期 | 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之前在写法上有一点问题,修复之后就可以了,可以看看这个#21 (comment)
vite会自动将cjs模块转换为esm,Mapbox Vector Tile Basic JS Renderer的_transformRequest之前在写法上有一点问题,修复之后就可以了,可以看看这个#21 (comment)
谢谢!