vue3+ts+cesium環境配置遇到得坑.


首先我們先創建個vue3+ts項目

vue create cesium_dome

然后引入cesium

npm i cesium --save

在vue.config.js配置(沒有就自己在項目根目錄創建一個)

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

let cesiumSource = "./node_modules/cesium/Source";
let cesiumWorkers = "Workers";
module.exports = {
  configureWebpack: {
    resolve: {
      alias: {
        "@": path.resolve("src"),
      },
    },
    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,
      unknownContextRegExp: /\/cesium\/cesium\/Source\/Core\/buildModuleUrl\.js/,
    },
  },
};

創建個index.vue

<template>
  <div class="home" id="cesiumContainer">
  </div>
</template>
<script lang="ts">
import { defineComponent, onMounted } from 'vue';
import {
  Viewer,
} from "cesium";
import "cesium/Build/Cesium/Widgets/widgets.css";
export default defineComponent({
  name: 'Home',
  setup(){
    onMounted(()=>{
        new Viewer('cesiumContainer');
    })
  }
});
</script>
<style scoped>
.home{
  width: 100%;
  height: 500px;
}
</style>

啟動會出現以下問題

 

由於在 ./node_modules/cesium/Source/ThirdParty/zip.js 文件中使用了 import.meta 語法,webpack 默認不支持,在進行項目構建時,會報如下錯誤,提示信息需要添加 loader。

接下來我們安裝 loader

npm install @open-wc/webpack-import-meta-loader --save-dev

然后在vue.config.js中添加(在module中[…]后面)

 
      rules: [
      {
      test: /\.js$/,
      use: {
      loader: '@open-wc/webpack-import-meta-loader',
      },
      },
    ]

然后重啟

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM