由于vite相比较于webpack在开发环境中巨大的效率提升,于是打算将项目迁移至vite技术栈,之前在vue-cli的项目中使用mars3d需要通过 copy-webpack-plugin 来处理cesium的一些静态资源依赖。像下面这样。

    1. [
    2. // 标识cesium资源所在的主目录,cesium内部资源加载、多线程等处理时需要用到
    3. new webpack.DefinePlugin({
    4. CESIUM_BASE_URL: JSON.stringify(cesiumRunPath)
    5. }),
    6. // cesium相关资源目录需要拷贝到系统目录下面
    7. new CopyWebpackPlugin({
    8. patterns: [
    9. { from: path.join(cesiumSourcePath, "Workers"), to: path.join(config.output.path, cesiumRunPath, "Workers") },
    10. { from: path.join(cesiumSourcePath, "Assets"), to: path.join(config.output.path, cesiumRunPath, "Assets") },
    11. { from: path.join(cesiumSourcePath, "ThirdParty"), to: path.join(config.output.path, cesiumRunPath, "ThirdParty") },
    12. { from: path.join(cesiumSourcePath, "Widgets"), to: path.join(config.output.path, cesiumRunPath, "Widgets") }
    13. ]
    14. })
    15. ]

    可以看出,比较麻烦并且以项目本身配置耦合度较高。使用vite之后,mars3d官方提供了插件来处理这个问题。
    具体使用方式为。

    1. // 安装
    2. npm install vite-plugin-mars3d -D
    3. // 导入
    4. import mars3dPlugin from 'vite-plugin-mars3d';
    5. // 在vite的plugins选项中添加
    6. mars3dPlugin()

    即可解决此问题,简单又方便