Vue3的Vite项目中直接引入的方式使用Cesium

不使用 CDN、不安装 npm 包,直接把 Cesium 静态文件放到项目里,通过本地路径 /Build/Cesium/xxx 引入并使用,这是离线 / 私有化部署最常用的方式。

一、先准备 Cesium 本地文件

1. 下载 Cesium 官方包

去官网下载对应版本(你用的 1.138.0):

👉 Cesium-1.138.0.zip(直接下载整个包,或者从 npm 缓存里拷贝 Build 文件夹)

2. 放入项目根目录(和 index.html 同级)

你的项目结构必须是这样:

复制代码
你的项目/
├── Build/          # 把下载的 Cesium 里的 Build 文件夹直接放这
│   └── Cesium/
│       ├── Cesium.js
│       ├── Workers/
│       ├── Assets/
│       └── Widgets/
├── index.html
├── vite.config.js
└── src/

路径正确后,才能用 /Build/Cesium/Cesium.js 访问。

二、配置 index.html(直接用你给的路径)

在根目录 index.html 里直接引入本地文件:

复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <title>Vue3 + 本地Cesium</title>
  <!-- 直接引入本地 Cesium -->
  <script src="/Build/Cesium/Cesium.js"></script>
  <link href="/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
</head>
<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
</html>

三、Vite 关键配置(必须加,否则直接报错)

修改 vite.config.js,告诉 Vite 这是外部全局资源,不编译、不打包:

复制代码
import { defineConfig } from 'vite'
import vue from '@plugin-vue'

export default defineConfig({
  plugins: [vue()],

  // 1. 排除 Cesium,不让 Vite 处理
  optimizeDeps: {
    exclude: ['Cesium']
  },

  // 2. 配置全局基础路径(核心!解决 Workers/Assets 加载失败)
  define: {
    CESIUM_BASE_URL: JSON.stringify('/Build/Cesium/')
  }
})

四、组件中直接使用(无需 import!)

在任意 Vue 组件里,直接用 window.Cesium,完全不用导入:

复制代码
<template>
  <div id="cesiumContainer" style="width:100%;height:800px;"></div>
</template>

<script setup>
import { onMounted } from 'vue'

onMounted(() => {
  // 直接用!无需 import
  const Cesium = window.Cesium

  // 令牌(必须)
  Cesium.Ion.defaultAccessToken = '你的Cesium Ion令牌'

  // 初始化地球
  const viewer = new Cesium.Viewer('cesiumContainer', {
    terrain: Cesium.Terrain.fromWorldTerrain()
  })
})
</script>

五、最常见的 3 个问题(我直接帮你解决)

  1. 报错:Failed to load resource /Workers/...

✅ 原因:没配置 CESIUM_BASE_URL✅ 解决:vite.config.js 里必须加:

复制代码
define: { CESIUM_BASE_URL: JSON.stringify('/Build/Cesium/') }
  1. 页面找不到 /Build/Cesium.js

✅ 原因:Build 文件夹放错位置✅ 解决:必须放在项目根目录,和 index.html 同级。

  1. 地图黑屏 / 不加载

✅ 原因:没加 Ion 令牌✅ 解决:必须设置:

复制代码
Cesium.Ion.defaultAccessToken = '你自己的token'

六、这种方式的优势(你选的是最优方案)

  • 完全本地离线,不依赖网络 CDN
  • 不打包、不编译,Vite 启动超快
  • 版本完全可控,不会自动更新
  • 适合内网 / 私有化部署
  • 使用最简单,直接 window.Cesium
相关推荐
用户61595868000221 天前
Cesium 入门系列(四):区域高亮显示的两种实现方案
cesium
用户61595868000221 天前
Cesium 入门(三):BaseLayerPicker 底图切换与国产地图接入
cesium
用户61595868000221 天前
Cesium 入门(二):Geocoder 搜索框参数详解与天地图搜索接入
cesium
灵境(虚幻知音)3 天前
Cesium动态轨迹性能瓶颈深度拆解:翼带与尾迹的底层优化实践
性能优化·cesium·3d引擎·afsim·翼带·尾迹·自定义着色器
fxshy5 天前
WebGIS 游戏化实践:基于 Cesium + Vue3 实现全球飞行模拟系统:从球体坐标、飞行动力学到地形碰撞实战
游戏·vue3·cesium·webgis·飞行模拟
用户83134859306986 天前
Cesium实现动态流动火烧云晚霞效果(可用slider调整火烧云浓度)
vue.js·webgl·cesium
CBX7 天前
Cesium 入门实战:GeoJSON 数据加载与地区边界可视化
cesium
毕安格 - BimAngle13 天前
国家电网 GIM 格式模型一键输出 3D Tiles (for Cesium) 和 glTF/glb 更新时间:2026-08-18
3d·gis·cesium·gltf·glb·3d tiles·gim
探索前端15 天前
3dtiles加载时被地形遮挡问题研究及处理思路
前端·3d·cesium
兔年鸿运Q小Q24 天前
cesium1.140以上版本加载地形
arcgis·cesium