0. 前言
本文档使用的vue cli工具版本为4.5.9
1. 创建vue基本项目
1.1 安装vue cli
npm install -g @vue/cli# ORyarn global add @vue/cli
1.2 创建vue项目(以default配置为例)
vue create cesium-demo
项目创建完成后,得到的目录结构如下:
手动添加vue.config.js
2. 安装和配置cesium
2.1 安装cesium依赖
npm install cesium# ORyarn add cesium
2.2 安装配置所需工具copy-webpack-plugin
npm install copy-webpack-plugin -D# ORyarn add copy-webpack-plugin -D
3. 配置vue.config.js
配置文件如下,vue.config.js中,configureWebpack内的内容为一个对象时,内容会被webpack-merge合并到最终配置中,所以将cesium的文件配置挪一部分过来即可
// The path to the CesiumJS source codeconst cesiumSource = 'node_modules/cesium/Source';const cesiumWorkers = '../Build/Cesium/Workers';const path = require('path');const webpack = require("webpack");const CopyPlugin = require("copy-webpack-plugin");module.exports = {configureWebpack: {output: {sourcePrefix: ' ',},amd: {toUrlUndefined: true,},plugins: [// Copy Cesium Assets, Widgets, and Workers to a static directorynew CopyPlugin({ patterns: [{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }] }),new CopyPlugin({ patterns: [{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }] }),new CopyPlugin({ patterns: [{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }] }),new webpack.DefinePlugin({// Define relative base path in cesium for loading assetsCESIUM_BASE_URL: JSON.stringify("")}),],module: {// Removes these errors: "Critical dependency: require function is used in a way in which dependencies cannot be statically extracted"// https://github.com/AnalyticalGraphicsInc/cesium-webpack-example/issues/6unknownContextCritical: false,unknownContextRegExp: /\/cesium\/cesium\/Source\/Core\/buildModuleUrl\.js/}}};
4. 创建cesium实例
// App.vue<template><div id="cesiumContainer"></div></template><script>import "cesium/Build/Cesium/Widgets/widgets.css";import * as Cesium from "cesium";export default {name: 'App',mounted() {new Cesium.Viewer("cesiumContainer");}}</script>
5. 注意事项
copy-webpack-plugin的版本不能是现在最新的7.0.0(该版本支持webpack5),如果使用该版本的插件,会出现编译错误。

