最新版 Cesium(1.99.0) 构建封装开发环境以及遇到问题

news2024/11/27 10:39:31

最新版 Cesium(1.99.0) 构建封装开发环境以及遇到问题

    • 使用版本
    • Webpack4.* 集成 Cesium 错误
    • 官方示例介绍
      • 官方示例配置介绍:
      • 官方示例配置补充:
    • webpack5 过程学习资料
    • githup 完整项目

最近项目用 Cesium 比较多,因此想把常用的功能进行封装,为了方便,打算 基于 ES6 架构 做封装。

项目开始阶段,想基于之前项目 (Cesium1.84) 搞得一个 ES6 环境(Webpack4.×),结果启动一直有问题。经过不断尝试,发现 Cesium1.84 之前版本没问题,相同的配置,升级 Cesium1.84 之后版本就会报错。

尝试改错无果,最后决定升级 Webpack5。开始在 Webpack4.× 基础上做升级,结果也是出现各种问题。

不建议直接由 Webpack4 升级为 Webpack5。

最后偶然在搜索到 Cesium 官方有 Webpack5 示例,于是克隆下来,参照的改,终于完成基础架构。

本文主要介绍 Webpack4.× 集成 Cesium 错误、官方示例介绍、官网示例补充、 Webpack5 学习、完整项目


使用版本

node:v16.16.0

npm:8.17.0

webpack:5.74.0

webpack-dev-server: 4.11.1

Cesium:1.99.0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Webpack4.* 集成 Cesium 错误

1. 过程错误

经过不断的试错,发现 Cesium1.84.0 之前的版本,Webpack4.× 环境基本都是正常的,启动服务和编译都没问题。

但是 Cesium1.85.0 至 Cesium1.95.0,webpack4.× 环境下报错如下:
在这里插入图片描述
升级至 Cesium1.96.0及以上的版本,webpack4.× 环境下报错如下:
在这里插入图片描述

2. 过程博客


试错过程中,遇到的错误以及搜索的解决办法(多数不奏效):

nodejs require/import 导包报错以及解决方法 ,Cesium 1.84 之前版本应该是需要 require 相关配置,最新版因采用 ES6 架构,不需要额外配置 require。

Using Dynamic import in Node.js lets us import ES6 modules in CommonJS code, and more - UPDATED,跟上边错误一致,也是 require 配置问题。

error in ./src/assets/images/logo.png报错,图片静态资源问题。

cesium报错error in ./node_modules/cesium/Source/ThirdParty/zip.js 的解决办法,这个是 Webpack4 不识别 ES6 某些操作符的问题。

为何在打包工具中导入 Cesium 的 css 失败了?(新版已修复),Cesium 1.84-1.95 间某个版本问题,后期版本已修复。

Can not import widgets.css file not exported from package.json #9212,同上。

webpack4升级到webpack5经验总结,有一定参考价值。

Invalid options object. Dev Server has been initialized using an options object that d,有一定参考价值。

webpack < 5 used to include polyfills for node.js core modules by default.,有一定参考价值。


除了遇到的问题,还有一些已经过期的博客(低于 Cesium 1.84):

笔者也被这些博客耽误一些时间,至于旧版本能不能配置成功,未尝试!

Cesium深入浅出之webpack搭建框架(讲解详细,有示例,版本 cesium1.77)

Cesium官方教程13–Cesium和Webpack(教程还不错,只是webpack4.*,仅适用于 版本低于 cesium1.84.0)


另外,还有一个 vue 版本,由于笔者封装不需要 vue 环境,因此未深入研究:

Vue2+Cesium1.9+热力图开发笔记


官方示例介绍

Cesium 提供的 Webpack 官方示例,可以直接运行,也没什么问题,可以根据自己的需求调整即可。

官方示例配置介绍:

在这里插入图片描述

  1. package.json 文件

在这里插入图片描述
2. webpack.config.js 配置文件

在这里插入图片描述
在这里插入图片描述
4. index.js 入口文件

在这里插入图片描述

官方示例配置补充:

官方示例中缺少 代码混淆和 gzip 压缩,这里补充一下:

webpack.config.js 配置文件

1. 代码混淆

//压缩混淆加密
const TerserWebpackPlugin = require("terser-webpack-plugin");

optimization: {
    minimize: true,
    minimizer: [
        new TerserWebpackPlugin({
            minify: TerserWebpackPlugin.uglifyJsMinify,
            // `terserOptions` options will be passed to `uglify-js`
            // Link to options - https://github.com/mishoo/UglifyJS#minify-options
            terserOptions: {
                annotations: false,
                // ie:  false,
            },
        }),
    ],
}

2. 开启 gzip 压缩

// 压缩代码
const CompressionPlugin = require("compression-webpack-plugin");

plugins: [
    // 开启 GZIP 压缩
    new CompressionPlugin({
        filename: '[path][base].gz',
        algorithm: 'gzip',
        threshold: 10240,// 大于10kb的才被压缩
        // minRatio: 0.8,//压缩比例
        // test: /\.js$|\.css$|\.html$/,
        test: /\.js$|\.css$/,
        // 不压缩 cesium 资源
        exclude: /\/sphere/,
    }),
]


webpack5 过程学习资料

试错太久,这里记录一下 webpack5 不错的学习资料。

webpack5 介绍

html-webpack-plugin文档

html-webpack-plugin详解

webpack5 SplitChunksPlugin 实用指南

webpack5 SplitChunksPlugin 使用说明

TerserWebpackPlugin文档

CompressionWebpackPlugin文档

githup 完整项目

ES6 封装基础架构


参考博客均已在文中注明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

世界各国GDP相关面板数据(1960-2019年)

1、数据来源:世界银行 2、时间跨度:1960-2019年 3、区域范围:全球 4、指标说明: 该数据包含以下指标: 1.世界各国1960-2019年GDP 2.世界各国1960-2019年GDP增长率 3.世界各国1960-2019年人均GDP 4.世界各国196…

SwiftUI 精品源码之学习可视化应用程序基于SceneKit,AVSpeechSynthetizer 文字转语音功能tts(教程)

我是一个非常注重视觉的人,这也适用于我的学习。当他们做某些事情时,我通过观察事物或其他人来学习。我也有很强的听觉倾向,所以你不能指望我读完一本 300 页的小说,但你可以指望我听 1 小时的播客而不会分心,并从中真正学到一些东西。 这种学习方式时常帮助我,从一门学科…

龙蜥开发者说:开源是场马拉松!来自广州大学姚同学的开源成长记 | 第 13 期

「龙蜥开发者说」第 13 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者姚胤…

远程兴起,前端音视频通话?学

前言 看到前两篇文章都非常受欢迎,加起来有一千多赞了👍🏻 ,非常的开心!🤖继续加油!冲! 我们在前两篇文章中大概讲解了 音视频媒体流的获取,处理,以及在上一…

(免费分享)基于jsp的CRM客户管理-带论文

一、课题来源: 自有商业活动,客户关系就一直是商业活动中的一个核心问题,同时也成了商务活动成功的审核标准。在全球经济一体化为时代背景的时代,企业面临着为公司带来更多的客户、为管理者提供准确的信息和便捷的操作查询手段 、…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容,新旧iphone短信转移?您可能知道,iOS设备上不支持导出iPhone简讯,更不用说打印iPhone上的短信了。幸运的是,有一些可行的方法可以将iPhone短信导入到另一个iPhone,继续阅读以获得更多帮…

软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章

了解更多关注软协官网:https://www.csuftsap.cn/ 来自软件协会编辑,注册会员即可获取全部开源.md资源,请勿转载,归软件协会所有。 文章目录:star: 软件协会第01次活动第05次任务布置1.程序员的浪漫-爱心代码(升级版&a…

css3手册

文章目录布局弹性盒生成弹性容器和弹性项目更改方向主轴排列侧轴排列弹性项目伸缩主轴换行网格生成网格布局定义行和列改变排列方向单元格之间的间隙单元格内部的对齐网格项目定位视觉阴影盒子阴影文字阴影圆角背景渐变变形translate 平移scale 缩放rotate 旋转改变变形原点多种…

spring MVC源码探索之AbstractHandlerMethodMapping

AbstractHandlerMethodMapping 是什么 官方解释是这样的。 /*** Abstract base class for {link HandlerMapping} implementations that define* a mapping between a request and a {link HandlerMethod}.** <p>For each registered handler method, a unique mapping…

Java项目:ssm毕业论文管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 毕业设计管理系统 1、本系统使用SSM框架 2、有管理员、教师、学生三种角色&#xff0c;管理员使用admin/admin登录&#xff0c;教师使用t_01/6666登录&a…

JavaWeb简单实例——DBUtils

简单介绍&#xff1a; DBUtils是一个用来简化我们JDBC的编码工作量的一个工具。它可以在不影响数据库访问性能的情况下简化我们的代码编辑量。DBUtils的作用主要是&#xff1a;写数据&#xff0c;读数据&#xff0c;优化性能。 常用的类和对应的API&#xff1a; QureyRunner…

Spring Framework 6正式发布,携JDK 17Jakarta EE开启新篇章

本文已被https://yourbatman.cn收录&#xff1b;女娲Knife-Initializr工程可公开访问啦&#xff1b;程序员专用网盘https://wangpan.yourbatman.cn&#xff1b;技术专栏源代码大本营&#xff1a;https://github.com/yourbatman/tech-column-learning&#xff1b;公号后台回复“…

1.什么是闭包

什么是闭包 1. 概念 闭包&#xff08;closure&#xff09;指有权访问另一个函数作用域中变量的函数。—《JavaScript高级程设计》 简单理解就是一个函数。 2. 如何产生闭包&#xff1f; 当一个嵌套的内部函数引用了嵌套的外部函数的变量&#xff08;函数&#xff09;时&…

CANoe-vTESTstudio之Test Diagram编辑器(元素介绍)

Test Diagram编辑器里的工具箱,有多个图形符号,它们是组成测试图表的图形元素,具有不同的作用。图形元素能够高效并快速地创建测试图表,然后生成测试用例 1. 基本测试设计元素 基本元素用来创建图形设计 1.1 Setup Setup元素的测试代码能够执行一次,在检查测试用例之前…

特别有用!Jmeter命令行执行时设置并发数和循环次数的方法

Jmeter命令行方式运行概述 之前写过一篇文章介绍如何在centos上部署jmeter来执行性能测试&#xff0c;链接如下&#xff1a; https://blog.csdn.net/liwenxiang629/article/details/124140833 因为大多数linux服务器都是没有GUI界面的&#xff0c;这就需要我们通过命令行的方…

MobPush Android For Unity

集成准备 注册账号 使用MobSDK之前&#xff0c;需要先在MobTech官网注册开发者账号&#xff0c;并获取MobTech提供的AppKey和AppSecret&#xff0c;详情可以点击查看注册流程 下载.unitypackage包 打开 Github 下载 MobPush-For-Unity 项目&#xff0c;下载完成后直接双击或…

【图神经网络论文整理】(十)—— How Powerful are Graph Neural Networks?:GIN

作者信息&#xff1a;Keyulu Xu, Weihua Hu, Jure Leskovec, Stefanie Jegelka论文来源&#xff1a;Computer Vision and Pattern Recognition论文地址&#xff1a;https://arxiv.org/abs/1810.00826 本文介绍的论文是《How Powerful are Graph Neural Networks?》。 作者提…

MySQL表的增删查改(嘎嘎详细~

hello呀&#xff01;各位&#xff0c;这里是Sunlightʊə。 目前大三&#xff0c;主要在学习Java语言。可以一起交流呀&#xff01; 相关文章&#xff1a; MySQL数据库的基础操作&#xff08;简单、基础版 专栏&#xff1a; Java数据结构 Java基础语法 MySQL基础 目录 新增&am…

流式 Isotype control 流式细胞仪control组

流式细胞术是非常让人着迷的实验。在众多医学研究手段里,如果说弱水三千只取一瓢的话,那我会首选流式细胞术。从我个人感受来讲,流式细胞术高速客观,具有统计学意义,能够处理复杂样本并同时获取多种参数,最最关键的是它性能可靠,可重复性非常好。 虽然也存在一些局限,…

3款超实用的电脑软件,免费又良心,内存满了也绝不卸载

超强的3款电脑软件&#xff0c;每款都是百里挑一的精品。 1、视频画质增强器 这是国人开发的图片视频增强工具&#xff0c;完全免费无任何弹屏广告&#xff0c;它能将画质很差的图片&#xff0c;一键转化为高清大图&#xff0c;同时还能无损放大图片&#xff0c;图片输出格式支…