前言

​ 本人ruoyi vue2模板搭建的管理项目中集成Cesium,踩了诸多坑。

​ 各种查阅和看Demo,测试出来了可行的配置。特来分享,或许可以减少各位同伴踩到的坑(如果可以,麻烦在文章底部留个言,我想知道有多少朋友也在做这个工作)。

配置步骤

  1. 版本道传版本要≤1.95.0,这里参考https://github.com/syzdev/vue-cesium-start使用了1.80.0版本

  2. 添加一个loader: @open-wc/webpack-import-meta-loader

  3. vue.config.js配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    'use strict'
    const path = require('path')
    const webpack = require("webpack")
    // ....省略,不知道你能否理解俺下面写的注释,有问题可以留言问,俺看到会回复的
    const CopyPlugin = require('copy-webpack-plugin');
    // ....
    module.exports = {
    // ....
    plugins: [
    // ....
    // cesium-copy-plugin[copyplugin prop type is array]
    new CopyPlugin([{
    from: 'node_modules/cesium/Build/Cesium/Workers',
    to: 'cesium/Workers'
    }]), new CopyPlugin([{
    from: 'node_modules/cesium/Build/Cesium/ThirdParty',
    to: 'cesium/ThirdParty'
    }]), new CopyPlugin([{
    from: 'node_modules/cesium/Build/Cesium/Assets',
    to: 'cesium/Assets'
    }]), new CopyPlugin([{
    from: 'node_modules/cesium/Build/Cesium/Widgets',
    to: 'cesium/Widgets'
    }]),
    // cesium-resource-path
    new webpack.DefinePlugin({
    CESIUM_BASE_URL: JSON.stringify('./cesium'),
    }),
    ],
    // cesium-meta-loader
    module: {
    unknownContextCritical: false,
    rules: [
    {
    test: /.js$/,
    use: {
    loader: "@open-wc/webpack-import-meta-loader",
    },
    },
    {
    exclude: /node_modules/,
    include: /src/,
    test: /.js$/,
    use: "babel-loader",
    },
    ],
    },
    // ceisum-multi-line
    output: {
    sourcePrefix: " ",
    },
    // cesium-better-require
    amd: {
    toUrlUndefined: true,
    },
    },
    chainWebpack(config) {
    // ....
    // cesium-babel-loader
    config.module
    .rule('babel')
    .test(/\\.js$/)
    .include
    .add(/node_modules\\/@cesium/)
    .end()
    .use('babel-loader')
    .loader('babel-loader')
    .options({
    presets: ['@babel/preset-env'],
    plugins: [
    '@babel/plugin-proposal-optional-chaining',
    '@babel/plugin-proposal-nullish-coalescing-operator',
    ]
    });
    },

    // cesium-pile-deps
    transpileDependencies: [
    '@cesium'
    ],
    }

Z_YTEMQ@%_3PKXMM$D$F77Y

好了这就是全部配置内容了,希望你的配置过程超级顺利,如果本文对你有所帮助,或许可以资助我买一瓶矿泉水qvq(或者你自己多喝一点水哦!)