Error constructing CesiumWidget.Visit http://get.webgl.org to verify that your web browser and hard

created at 09-07-2021 views: 19

Vue cli3 import cesium got an error

Error constructing CesiumWidget.
Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL.  Consider trying a different web browser or updating your video drivers.  Detailed error information is below:
DeveloperError: Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.
vue.min.js:6 DeveloperError {name: "DeveloperError", message: "Unable to determine Cesium base URL automatically,…efining a global variable called CESIUM_BASE_URL.", stack: "Error\n    at new DeveloperError (webpack-internal:….0@cesium/Source/Widgets/Viewer/Viewer.js:530:22)"}

Solution

Add global variable CESIUM_BASE_URL to vue.config.js

const VUE_APP_BASE_API = '^' + process.env.VUE_APP_BASE_API;
const CopyWebpackPlugin = require('copy-webpack-plugin')
const webpack = require('webpack')
const path = require('path')
let cesiumSource = './node_modules/cesium/Source'
let cesiumWorkers = '../Build/Cesium/Workers'

module.exports = {
  //Path prefix
  publicPath: '/',
  lintOnSave: true,
  productionSourceMap: false,
  ...
  configureWebpack: {
    output: {
      sourcePrefix: ' '
    },
    amd: {
      toUrlUndefined: true
    },
    plugins: [
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' }]),
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify('./')
      })
    ],
    module: {
      unknownContextCritical: false
    }
  }
};
created at:09-07-2021
edited at: 09-07-2021: