由于vite相比较于webpack在开发环境中巨大的效率提升,于是打算将项目迁移至vite技术栈,之前在vue-cli的项目中使用mars3d需要通过 copy-webpack-plugin 来处理cesium的一些静态资源依赖。像下面这样。
[
// 标识cesium资源所在的主目录,cesium内部资源加载、多线程等处理时需要用到
new webpack.DefinePlugin({
CESIUM_BASE_URL: JSON.stringify(cesiumRunPath)
}),
// cesium相关资源目录需要拷贝到系统目录下面
new CopyWebpackPlugin({
patterns: [
{ from: path.join(cesiumSourcePath, "Workers"), to: path.join(config.output.path, cesiumRunPath, "Workers") },
{ from: path.join(cesiumSourcePath, "Assets"), to: path.join(config.output.path, cesiumRunPath, "Assets") },
{ from: path.join(cesiumSourcePath, "ThirdParty"), to: path.join(config.output.path, cesiumRunPath, "ThirdParty") },
{ from: path.join(cesiumSourcePath, "Widgets"), to: path.join(config.output.path, cesiumRunPath, "Widgets") }
]
})
]
可以看出,比较麻烦并且以项目本身配置耦合度较高。使用vite之后,mars3d官方提供了插件来处理这个问题。
具体使用方式为。
// 安装
npm install vite-plugin-mars3d -D
// 导入
import mars3dPlugin from 'vite-plugin-mars3d';
// 在vite的plugins选项中添加
mars3dPlugin()
即可解决此问题,简单又方便