@vue/cli 5.0.4+“cesium“: “^1.98.1“

脚手架建立好之后安装cesium,
1.安装依赖:

npm i cesium

2.cesium需要配置webpack才可以使用
2.1重点:导入安装好的依赖,vue.config.js中

let cesiumSource = './node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers';```

2.2配置plugins:

    plugins: [
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, cesiumWorkers),
          to: "Workers"
        }, ],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "Assets"),
          to: "Assets"
        }],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "Widgets"),
          to: "Widgets"
        }],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "ThirdParty/Workers"),
          to: "ThirdParty/Workers",
        }, ],
      }),
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify("./"),
      }),
    ],

3.main.js内全局导入js和css(如果不是全局用在.vue页面导入也可以)
如果css没导入的话会出现如下所示情况:
在这里插入图片描述

// 方法1导入可以
// var Cesium = require("cesium/Cesium");
// var widgets = require("cesium/Widgets/widgets.css");
// 方法2导入也可以
import * as Cesium from "cesium/Cesium"
import * as widgets from  "cesium/Widgets/widgets.css"
//全局挂载 之后可用this.Cesium 访问
Vue.prototype.Cesium = Cesium
Vue.prototype.widgets = widgets 

4.如果不设置别名mian.js导入就会报错:
在这里插入图片描述
写了就不会

    resolve: {
      alias: {
        cesium: path.resolve(__dirname, cesiumSource)
      }
    },

*注意这里如果也出现了webpack < 5 used to include polyfills…的错误,同理:
安装依赖

npm install node-polyfill-webpack-plugin

导入vue.config.js

const CopyWebpackPlugin = require("copy-webpack-plugin");

plugins内配置

new NodePolyfillPlugin()

vue.config.js:

const { defineConfig} = require('@vue/cli-service')
const CopyWebpackPlugin = require("copy-webpack-plugin");
const path = require("path");
const webpack = require("webpack");
let cesiumSource = './node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers';
// 头部引入
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false,
  configureWebpack: {
    plugins: [
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, cesiumWorkers),
          to: "Workers"
        }, ],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "Assets"),
          to: "Assets"
        }],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "Widgets"),
          to: "Widgets"
        }],
      }),
      new CopyWebpackPlugin({
        patterns: [{
          from: path.join(cesiumSource, "ThirdParty/Workers"),
          to: "ThirdParty/Workers",
        }, ],
      }),
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify("./"),
      }),
      new NodePolyfillPlugin()
    ],
    resolve: {
      alias: {
        cesium: path.resolve(__dirname, cesiumSource)
      }
    },
  }
})

最后运行示例加载效果:
在这里插入图片描述
打包放置到服务器上的效果:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值