基于Next.js14+TS+Cesium搭建开发环境

创建项目

npx create-next-app@latest

在这里插入图片描述

pnpm的使用

  1. next.js项目默认使用npm管理项目依赖,想要使用pnpm则需要删除默认的node_modulespackage-lock.json两个文件

在这里插入图片描述

  1. 使用pnpm重新下载依赖
    在这里插入图片描述

安装项目所需依赖

pnpm install cesium
pnpm install copy-webpack-plugin
pnpm install process

配置next.config.mjs文件

import process from "process";
import CopyWebpackPlugin from "copy-webpack-plugin";
import path from "path";

const pathBuilder = (subpath) => path.join(process.cwd(), subpath);

/** @type {import("next").NextConfig} */
const nextConfig = {
  reactStrictMode: false,
  webpack: (config, { webpack }) => {
    config.plugins.push(
      new CopyWebpackPlugin({
        patterns: [
          {
            from: pathBuilder("node_modules/cesium/Build/Cesium/Workers"),
            to: "../public/cesium/Workers",
            info: { minimized: true }
          }
        ]
      }),
      new CopyWebpackPlugin({
        patterns: [
          {
            from: pathBuilder("node_modules/cesium/Build/Cesium/ThirdParty"),
            to: "../public/cesium/ThirdParty",
            info: { minimized: true }
          }
        ]
      }),
      new CopyWebpackPlugin({
        patterns: [
          {
            from: pathBuilder("node_modules/cesium/Build/Cesium/Assets"),
            to: "../public/cesium/Assets",
            info: { minimized: true }
          }
        ]
      }),
      new CopyWebpackPlugin({
        patterns: [
          {
            from: pathBuilder("node_modules/cesium/Build/Cesium/Widgets"),
            to: "../public/cesium/Widgets",
            info: { minimized: true }
          }
        ]
      }),
      new webpack.DefinePlugin({ CESIUM_BASE_URL: JSON.stringify("/cesium") })
    );

    return config;
  },
  output: "standalone"
};
export default nextConfig;

编写组件

'use client';
import {ReactElement, useEffect} from 'react';
import * as Cesium from 'cesium';
import 'cesium/Source/Widgets/widgets.css';
import { TOKEN } from "@/utils";

Cesium.Ion.defaultAccessToken = TOKEN.CESIUM;

const CreateViewer = (): ReactElement => {
  useEffect(() => {
    initMapViewer()
  }, [])
  const initMapViewer =  () => {
    new Cesium.Viewer('cesium-viewer')
  }
  return <div id={'cesium-viewer'} style={{width: '100%', height: '100%'}}/>;
}
export default CreateViewer;

启动项目

pnpm dev

在这里插入图片描述

结果

在这里插入图片描述
如果你觉得本文对你有帮助,不妨点个赞吧~~~

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Vue3 + TypeScriptCesium.js创建地球场景的示例: 首先,确保你已经安装了Vue CLI和Node.js。然后,按照以下步骤进行操作: 1. 创建一个新的Vue项目: ```shell vue create cesium-app ``` 2. 进入项目目录: ```shell cd cesium-app ``` 3. 安装Cesium.js和相关依赖: ```shell npm install cesium npm install @types/cesium ``` 4. 在`src`目录下创建一个新的组件文件,例如`CesiumMap.vue`,并添加以下代码: ```vue <template> <div id="cesiumContainer" style="width: 100%; height: 100%;"></div> </template> <script lang="ts"> import { defineComponent } from 'vue'; import * as Cesium from 'cesium'; export default defineComponent({ mounted() { const viewer = new Cesium.Viewer('cesiumContainer'); // 在这里可以添加更多的Cesium.js代码来自定义地球场景 }, }); </script> <style scoped> #cesiumContainer { position: absolute; top: 0; left: 0; right: 0; bottom: 0; } </style> ``` 5. 在`src`目录下的`main.ts`文件中导入并使用`CesiumMap`组件: ```ts import { createApp } from 'vue'; import App from './App.vue'; import CesiumMap from './CesiumMap.vue'; const app = createApp(App); app.component('CesiumMap', CesiumMap); app.mount('#app'); ``` 6. 在`src`目录下的`App.vue`文件中使用`CesiumMap`组件: ```vue <template> <div id="app"> <CesiumMap /> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; export default defineComponent({ name: 'App', }); </script> <style> #app { width: 100%; height: 100%; } </style> ``` 7. 运行项目: ```shell npm run serve ``` 现在,你应该可以在浏览器中看到一个基本的Cesium.js地球场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值