当前位置: 首页 > news >正文

Rollup入门与进阶:为现代Web应用构建超小的打包文件

我们常常面临Webpack复杂配置或是Babel转译后的冗余代码,结果导致最终的包体积居高不下加载速度也变得异常缓慢,而在众多打包工具中Rollup作为一个轻量且高效的选择,正悄然改变着这一切,本文将带你深入了解这个令人惊艳的打包工具

目录

入门Rollup

配置Rollup

Babel转换代码

打包多入口代码

加载三方依赖模块

使用TS模块

压缩JS代码

模板生成html页面

启动开发服务器

处理vue组件

压缩CSS代码

入门Rollup

        初识Rollup:是一个现代js的打包工具,主要用于将多个js文件打包成一个或多个最终的输出文件,它特别适用于构建库和模块化的应用程序,与Webpack等其他打包工具相比,Rollup 的一个显著优势是它能生成非常精简的代码,因为它能够进行更好的tree-shaking(去除未使用的代码)和模块优化,其使用特点如下所示:

1)打包后的代码体积小,性能优异

2)支持 ES 模块(ESM)格式

3)插件丰富,能够进行高度自定义

4)支持 tree shaking(去除无用代码)

所以说如果想构建库和小型应用,尤其是需要发布成npm包时,选择Rollup是一个不错的选择,如果想了解更为详细的内容,参考:官网 :

        项目初始化:接下来我们开始对项目进行一个初始化,首先终端执行如下命令直接全局安装rollup,如下所示:

npm install --global rollup

接下来我们创建一个项目文件夹,然后终端自行pnpm init初始化一个package.json文件,然后执行如下命令来安装一下rollup,安装完成之后,我们在项目根目录创建一个src文件夹,里面新建一个index.js文件,来展示一下要打包的代码:

pnpm i rollup -D
function random() {return Math.random().toString(16).slice(2);
}
console.log(random(), '变化1')
console.log(random(), '变化2')

然后我们根据官网给的入门提示,配置如下的打包命令:

可以看到打包出来的文件,基本上也是能够看懂的

配置Rollup

Rollup作为一个强大的js打包工具,在构建高效优化的模块化代码时展现了其独特的优势,然而Rollup的配置可以有很多细节,本文将带你逐步了解Rollup的配置过程,探讨如何通过Rollup配置优化打包提升代码的加载速度和运行效率,如下所示:

Babel转换代码

现代JavaScript特性(如箭头函数、模板字符串、类、模块化等)并不是所有浏览器都支持,特别是一些旧版浏览器(例如 Internet Explorer),Babel可以将这些新特性转换为旧版浏览器可以理解的代码以确保不同环境下的兼容性,接下来我们需要终端安装如下依赖:

// @babel/core babel的核心包
// @babel/preset-env 预设
// @rollup/plugin-babel babel插件
// @babel/runtime 减小最终构建文件的体积
// @babel/plugin-transform-runtime 减少转换过程中出现的重复代码
pnpm i @rollup/plugin-babel @babel/core @babel/preset-env @babel/runtime @babel/plugin-transform-runtime -D

安装完插件之后,我们在根目录创建一个 .babelrc 的babel配置文件,然后进行如下配置:

{"presets": [["@babel/preset-env",{"modules": false}]],"plugins": ["@babel/plugin-transform-runtime"]
}

配置完成之后我们来到config文件中进行如下babel插件的设置:

然后我们在入口文件写一个ES6模块的箭头函数,打包之后就会变成普通的function函数,兼容了低版本浏览器不支持ES6高级语法的情况:

打包多入口代码

上面我们配置的都是打包单入口的代码,如果想配置打包多入口的代码需要通过如下操作进行:

打包代码之前,我们需要先将打包文件中原本的文件先删除掉,这里需要借助如下插件:

pnpm i rollup-plugin-clear -D

然后我们引入插件之后进行如下插件的注册即可:

如下我们在dist文件下随便建一些文件,当我们执行打包之后,这些无关的文件都会被清除掉:

加载三方依赖模块

如果想rollup支持三方依赖插件的打包,这里我们需要安装如下插件然后进行一些配置:

pnpm i @rollup/plugin-node-resolve @rollup/plugin-commonjs -D

安装完成之后,我们仍然需要在配置文件当中进行如下插件的设置:

设置完成之后,我们可以安装一个三方依赖尝试一下,如下:

pnpm i lodash -s

如下当我们执行打包的时候就会把三方插件的依赖全部打包到文件当中:

当然可能还会有一些情况,比如说我们引入的第三方依赖当中含有的node语法,浏览器是无法识别的,这里我们需要替换一下打包结果中的关键字,终端执行如下命令:

pnpm i @rollup/plugin-replace -D

安装完成之后,在rollup配置文件当中进行如下配置即可:

replace({ // 替换打包结果中在浏览器中不兼容的代码,例如process.env.NODE_ENV'process.env.NODE_ENV': JSON.stringify('production'), // 替换代码中的环境变量preventAssignment: true // 防止替换赋值表达式,例如process.env.NODE_ENV = 'production'
}),

使用TS模块

如果想编译TS文件为js代码的话,需要终端安装如下插件:

pnpm i @rollup/plugin-typescript tslib -D

然后在配置文件中注册插件即可:

如下当执行打包的时候,TS文件编译成JS文件:

然后如果想对我们的ts编译进行一些操作的话,直接执行tsc --init生产ts配置文件,然后在里面调整即可,如下所示:

然后我们可以根据自身情况进行一个配置,例如如下所示:

{"compilerOptions": {"target": "ES6", // 编译目标为ES6                            "module": "ESNext", // 模块系统为ESNext                        "strict": false, // 启用所有严格类型检查选项                    "skipLibCheck": true, // 跳过所有声明文件的类型检查                    "esModuleInterop": true, // 允许从默认导出导入模块                    "forceConsistentCasingInFileNames": false, // 禁止对同一个文件的不一致的引用                    }
}

压缩JS代码

如果我们想对JS代码进行一个压缩,这里我们可以终端执行如下命令安装插件:

pnpm i @rollup/plugin-terser -D

安装完插件之后,还是对插件进行一个导入并使用:

然后我们执行打包,可以看到我们的代码已经真正被压缩了:

模板生成html页面

如果我们想根据模板html生成html单页面,这里我们可以终端执行如下命令安装插件:

pnpm i rollup-plugin-generate-html-template -D

安装完成之后,这里我们仍然需要在rollup配置文件当中,设置该模板插件,如下所示:

添加完成之后我们在src目录下新建一个index.html文件,这里可以演示作为vue的根节点:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- vue的挂载点 --><div id="app"></div>
</body>
</html>

当我们执行打包命令之后,html页面就会自动被打包到dist文件下,并且会自动注入js代码,注入js代码的类型也是我们设置的module,当我们执行html之后,浏览器也会执行js中的代码逻辑:

启动开发服务器

上面我们通过模板生成index.htm文件之后,如果想方便的运行项目的话,这里我们可以安装如下插件来帮助我们快捷的实现服务器的运行:

pnpm i rollup-plugin-serve -D

安装完插件之后,我们就可以在rollup配置文件当中进行如下配置:

然后我们可以在package.json文件当中针对不同的环境执行不同的文件,这里本地环境就执行dev命令即可,生产环境就执行build命令即可,然后针对不同的环境也可执行不同的配置文件:

比如说生产的配置文件中,不需要执行启动开发服务器的插件,本地环境不需要执行压缩代码的插件,然后不同的环境替换关键字的命令也不同,如下所示:

然后我们运行pnpm run dev命令,打开本地环境,如下可以看到会自动打开浏览器,查看f12可以看到我们打包的命令被执行了:

处理vue组件

如果我们想基于vue来开发一些功能的话,这里需要终端执行如下命令安装插件:

pnpm i vue -s
pnpm i rollup-plugin-vue -D

安装完插件之后,我们需要引入该插件,然后把vue编译放在插件列表的第一个:

然后我们开始编写vue模板并在入口文件中进行引入即可:

这里顺便为vue文件添加类型声明,如下所示:

终端执行打包命令之后,可以看到我们的浏览器已经打印了我们定义的内容:

压缩CSS代码

如果相对我们CSS代码进行一个压缩,这里我们可以终端执行如下命令安装插件,后面两个插件分别是对压缩和浏览器版本进行的控制:

pnpm i rollup-plugin-postcss cssnano autoprefixer -D

完整完插件之后,我们来到配置文件当中,进行如下配置:

import postcss from 'rollup-plugin-postcss';
import cssnano from 'cssnano';
import autoprefixer from 'autoprefixer'// 处理 CSS
postcss({extract: 'bundle.css', // 提取CSS到单独的文件modules: false, // 禁用 CSS Modulesminimize: true, // 开启压缩plugins: [autoprefixer, cssnano], // 使用 cssnano 插件进行压缩
}),

这里我们还需要来到package.json文件当中,设置browserslist指定项目所支持的浏览器范围的配置,如下所示:

"browserslist": ["defaults","not ie < 8","last 2 versions","> 1%","iOS 7","last 3 iOS versions"
]

执行打包命令之后,可以看到我们的css文件已经被压缩,并且浏览器的样式也成功生成,并且也兼容了其他浏览器的版本:

未完待续...

相关文章:

Rollup入门与进阶:为现代Web应用构建超小的打包文件

我们常常面临Webpack复杂配置或是Babel转译后的冗余代码&#xff0c;结果导致最终的包体积居高不下加载速度也变得异常缓慢&#xff0c;而在众多打包工具中Rollup作为一个轻量且高效的选择&#xff0c;正悄然改变着这一切&#xff0c;本文将带你深入了解这个令人惊艳的打包工具…...

博客系统技术需求文档(基于 Flask)

以下内容是AI基于要求生成的技术文档&#xff0c;仅供参考~ &#x1f9f1; 一、系统架构设计概览 层级 内容 前端层 HTML Jinja2 模板引擎&#xff0c;集成 Markdown 编辑器、代码高亮 后端层 Flask 框架&#xff0c;RESTful 风格&#xff0c;Jinja2 渲染 数据库 SQLi…...

快速排序、归并排序、计数排序

文章目录 前言一、归并排序算法逻辑递归实现非递归实现 二、快速排序算法介绍递归实现非递归实现算法的一种优化—三路划分法 四、计数排序算法原理代码实现优劣分析 五、排序算法的性能比较总结 前言 本文介绍这三种非常强大的排序算法&#xff0c;每种算法都有各自的特点、不…...

python语言与地理处理note 2025/05/11

1. 函数定义必须要在调用之前 &#xff08;1&#xff09;正确示例&#xff1a; def test():print("what a wonderful world!")test() &#xff08;2&#xff09;错误示例&#xff1a; test() def test():print("what a wonderful world!") 会报错&…...

贪心算法:最小生成树

假设无向图为&#xff1a; A-B:1 A-C:3 B-C:1 B-D:4 C-D:1 C-E:5 D-E:6 一、使用Prim算法&#xff1a; public class Prim {//声明了两个静态常量&#xff0c;用于辅助 Prim 算法的实现private static final int V 5;//点数private static final int INF Integer.MA…...

免费 OCR 识别 + 批量处理!PDF 工具 提升办公效率

各位办公小能手们&#xff01;今天给你们介绍一款超厉害的软件——PDF工具V2.2&#xff01;我跟你们说&#xff0c;这玩意儿就像是PDF界的超级英雄&#xff0c;专门搞定PDF文件的编辑、转换、压缩这些事儿。 先说说它的核心功能哈。基础文档管理方面&#xff0c;它能把好几个PD…...

尼康VR镜头防抖模式NORMAL和ACTIVE的区别(私人笔记)

1. NORMAL 模式&#xff08;常规模式&#xff09; 适用场景&#xff1a;一般手持拍摄&#xff0c;比如人像、静物、风景或缓慢平移镜头&#xff08;如水平追拍&#xff09;等。工作特性&#xff1a; 补偿手抖引起的小幅度震动&#xff08;比如手持时自然的不稳&#xff09;&am…...

在scala中sparkSQL读入csv文件

以下是 Scala 中使用 Spark SQL 读取 CSV 文件的核心步骤和代码示例&#xff08;纯文本&#xff09;&#xff1a; 1. 创建 SparkSession scala import org.apache.spark.sql.SparkSession val spark SparkSession.builder() .appName("Spark SQL Read CSV") …...

swift flask python ipad当电脑键盘 实现osu x键和z键 长按逻辑有问题 quart 11毫秒

键盘不行我5星都打不过&#xff0c;磁轴不在身边 127.0.0.1不行要用192.168哪个地址 from flask import Flask from pynput.keyboard import Controller from threading import Threadapp Flask(__name__) keyboard Controller()# 按下按键 app.route("/press_down/<…...

浅论3DGS溅射模型在VR眼镜上的应用

摆烂仙君小课堂开课了&#xff0c;本期将介绍如何手搓VR眼镜&#xff0c;并将随手拍的电影变成3D视频。 一、3DGS模型介绍 3D 高斯模型是基于高斯函数构建的用于描述三维空间中数据分布概率的模型&#xff0c;高斯函数在数学和物理领域有着广泛应用&#xff0c;其在 3D 情境下…...

React状态管理-对state进行保留和重置

相同位置的相同组件会使得 state 被保留下来 当你勾选或清空复选框的时候&#xff0c;计数器 state 并没有被重置。不管 isFancy 是 true 还是 false&#xff0c;根组件 App 返回的 div 的第一个子组件都是 <Counter />&#xff1a; 你可能以为当你勾选复选框的时候 st…...

嵌入式STM32学习——外部中断EXTI与NVIC的基础练习⭐

按键控制LED灯 按键控制LED的开发流程&#xff1a; 第一步&#xff1a;使能功能复用时钟 第二布&#xff0c;配置复用寄存器 第三步&#xff0c;配置中断屏蔽寄存器 固件库按键控制LED灯 外部中断EXTI结构体&#xff1a;typedef struct{uint32_t EXTI_Line; …...

git merge和git rebase

git merge和git rebase 在Git中merge和rebase都是git在管理整合分支的两种主要工具&#xff0c;但是他们的工作方式、提交历史影响和使用场景不同。 git merge 定义 将两个分支的提交历史合并&#xff0c;创建一个新的合并提交&#xff08;merge commit&#xff09;&#xff…...

我的MCP相关配置记录

1.VSCode的Cline中的MCP {"mcpServers": {"github.com/modelcontextprotocol/servers/tree/main/src/github": {"autoApprove": [],"disabled": false,"timeout": 60,"command": "cmd","args&quo…...

浅聊一下数据库的索引优化

背景 这里的索引说的是关系数据库&#xff08;MSSQL&#xff09;中的索引。 本篇不是纯技术性的内容&#xff0c;只是聊一次性能调优的经历&#xff0c;包含到一些粗浅的实现和验证手段&#xff0c;所以&#xff0c;大神忽略即可。 额…对了&#xff0c;笔者对数据库的优化手段…...

如何创建maven项目

1.IDEA 中创建 Maven 项目 步骤一&#xff1a;点击 File -> New -> Project&#xff0c;在弹出的窗口左侧选择 Maven&#xff0c;点击 Next&#xff1a; 步骤二&#xff1a;填写项目的 GroupId、ArtifactId、Version 等信息&#xff08;这些对应 pom.xml 中的关键配置&am…...

LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

一、引言 在自然语言处理领域,大规模预训练语言模型(LLMs)展现出强大的语言理解和生成能力。然而,将这些模型适配到多个下游任务时,传统微调方法面临诸多挑战。LoRA(Low-Rank Adaptation of Large Language Models)作为一种创新的微调技术,旨在解决这些问题,为大语言…...

Conda在powershell终端中无法使用conda activate命令

主要有以下原因&#xff1a; Windows PowerShell安全策略&#xff1a;默认情况下&#xff0c;PowerShell的执行策略设置为"Restricted"&#xff0c;这会阻止运行脚本&#xff0c;包括conda的初始化脚本。调用方式不同&#xff1a;在PowerShell中&#xff0c;需要使用…...

MySQL索引底层数据结构与算法

1、索引的数据结构 1.1、二叉树 1.2、红黑树(二叉平衡树&#xff09; 1.3、hash表 对key进行一次hash计算就可以定位出数据存储的位置 问题&#xff1a;hash冲突问题、仅满足和in的查找&#xff0c;不支持范围查找 1.4、B-tree 1.5、B tree 非叶子节点不存储data&…...

GOOSE 控制块参数gocbRef及goID有大小写要求

在 IEC 61850 标准中&#xff0c;GOOSE 控制块参数gocbRef和goID的大小写是严格区分的。这一结论基于以下多维度分析&#xff1a; 一、标准协议与配置文件的强制性 XML 语法的刚性约束 GOOSE 控制块的配置信息通过 SCL&#xff08;Substation Configuration Language&#xff…...

重庆医科大学附属第二医院外科楼外挡墙自动化监测

1.项目概述 重庆医科大学附属第二医院&#xff0c;重医附二院&#xff0c;是集医疗、教学、科研、预防保健为一体的国家三级甲等综合医院。前身为始建于1892年的“重庆宽仁医院”。医院现有开放床位 1380张&#xff0c;年门诊量超过百万人次&#xff0c;年收治住院病人4.5万人…...

3.4 数字特征

本章系统讲解随机变量的数字特征理论&#xff0c;涵盖期望、方差、协方差与相关系数的核心计算与性质。以下从四个核心考点系统梳理知识体系&#xff1a; 考点一&#xff1a;期望&#xff08;数学期望&#xff09; 1. 离散型随机变量的数学期望 一维情形&#xff1a; E ( X …...

servlet-api

本次内容总结 1、再次学习Servlet的初始化方法 2、学习Servlet中的ServletContext和<context-param> 3、什么是业务层 4、IOC 5、过滤器 7、TransActionManager、ThreadLocal、OpenSessionInViewFilter 1、再次学习Servlet的初始化方法 1&#xff09;Servlet生命周期&…...

NLTK进行文本分类和词性标注

《python ⾃然语⾔处理实战》学习笔记 NLTK 下载依赖 !pip install nltkimport nltk nltk.download(punkt_tab)分词(tokenize) from nltk.tokenize import word_tokenize from nltk.text import Textinput_str """Twinkle, twinkle, little star, How I won…...

电机控制储备知识学习(一) 电机驱动的本质分析以及与磁相关的使用场景

目录 电机控制储备知识学习&#xff08;一&#xff09;一、电机驱动的本质分析以及与磁相关的使用场景1&#xff09;电机为什么能够旋转2&#xff09;电磁原理的学习重要性 二、电磁学理论知识1&#xff09;磁场基础知识2&#xff09;反电动势的公式推导 附学习参考网址欢迎大家…...

华三路由器单臂路由配置

目录 1.实验目的1.1 掌握华三路由器单臂路由配置方法2.1 路由器连接交换机&#xff0c;交换机划分多个 VLAN&#xff0c;不同 VLAN 的 PC 通过路由器实现通信 配置步骤与命令解析1.配置交换机2.配置路由器验证配置3.1 配置交换机 VLAN3.1.1 创建 VLAN3.1.2 配置端口所属 VLAN3.…...

一键转换上百文件 Word 批量转 PDF 软件批量工具

各位办公族们&#xff0c;你们有没有被手动把Word一个个转成PDF给折腾得欲哭无泪过啊&#xff1f;我之前就因为这事忙得晕头转向&#xff0c;眼睛都快看瞎了&#xff01;不过呢&#xff0c;后来我发现了专门为咱提升办公效率设计的Word批量转PDF软件&#xff0c;那简直就是办公…...

矫平机:工业精密矫正的全维度解析

作为现代制造业的核心设备之一&#xff0c;矫平机通过消除材料残余应力、提升平整度&#xff0c;持续推动着汽车、航空航天、新能源等领域的质量升级。本文基于最新行业动态与技术突破&#xff0c;从原理革新到智能化实践展开深度解析。 一、核心原理&#xff1a;力学与智能的深…...

网络安全-等级保护(等保) 2-3 GB/T 22240—2020《信息安全技术 网络安全等级保护定级指南》-2020-04-28发布【现行】

################################################################################ 在开始等级保护安全建设前&#xff0c;第一步需要知道要保护的是什么&#xff0c;要保护到什么程度&#xff0c;所以在开始等级保护中介绍的第一个标准是《定级指南》&#xff0c;其中明确了…...

GNSS数据自动化下载系统的设计与实现

摘要 本文详细介绍了三种不同设计的GNSS数据自动化下载系统&#xff0c;分别针对IGS观测数据、GRACE-FO Level-1B数据以及通过代理服务器获取数据的需求场景。系统采用Python实现&#xff0c;具备断点续传、完整性校验、异常处理和进度显示等核心功能。实验结果表明&#xff0…...

c语言第一个小游戏:贪吃蛇小游戏06

实现贪吃蛇四方向的风骚走位 实现代码 #include <curses.h> #include <stdlib.h> struct snake{ int hang; int lie; struct snake *next; }; struct snake *head; struct snake *tail; int key; int dir; //全局变量 #define UP 1 //这个是宏定义&a…...

人工智能_大模型数据标注主要做什么_拉框_人工智能训练师_数据标准师介绍---人工智能工作笔记0244

随着大模型的快速发展,数据标注迅速成为比较热门的工作,那么 数据标注,具体干什么呢? 因为现在人工智能在某个领域如果理解,或者识别的越精准,那么 就需要越高质量的数据, 就是因为,模型的训练,大多还是有监督深度学习.给他足够高质量的数据才行有好的效果. 可以看到在AI领…...

工业4G路由器IR5000公交站台物联网应用解决方案

随着城市化进程的加速&#xff0c;公共交通是智慧城市的重要枢纽。城市公共交通由无数的公交站台作作为节点组合而成&#xff0c;其智能化升级成为提升城市出行效率与服务质量的关键。传统公交站台信息发布滞后、缺乏实时性&#xff0c;难以满足乘客对公交信息快速获取的需求&a…...

文件操作: File 类的用法和 InputStream, OutputStream 的用法

目录 1. File 概述 1.1 File的属性 1.2 File的构造方法 1.3 File的方法 2. 文件的基本操作 2.1 InputStream 2.2 OutputStream 2.3.字符流读取(Reader) 2.4 字符流写&#xff08;Writer&#xff09; 1. File 概述 Java 中通过 java.io.File 类来对⼀个文件&#xf…...

SQL 中 INSTR 函数简介及 截取地址应用

一、基本语法与参数解析 ​​语法​​&#xff1a; INSTR(string1, string2 [, start_position [, nth_occurrence]]) ​​参数说明​​&#xff1a; a.​​string1​​&#xff1a;源字符串&#xff08;必选&#xff09;。 b.​​string2​​&#xff1a;需查找的子字符串&am…...

Oracle SYSTEM/UNDO表空间损坏的处理思路

Oracle SYSTEM/UNDO表空间损坏是比较棘手的故障&#xff0c;通常会导致数据库异常宕机进而无法打开数据库。数据库的打开故障处理起来相对比较麻烦&#xff0c;读者可以参考本书第5章进一步了解该类故障的处理过程。如果数据库没有备份&#xff0c;通常需要设置官方不推荐的隐含…...

【HarmonyOs鸿蒙】七种传参方式

一、页面间导航传参 使用场景&#xff1a;页面跳转时传递参数 实现方式&#xff1a;通过router模块的push方法传递参数 // 页面A传参 import router from ohos.router;router.pushUrl({url: pages/PageB,params: { id: 123, name: HarmonyOS } });// 页面B接收参数 Entry Co…...

微信小程序 密码框改为text后不可见,需要点击一下

这个问题是做项目的时候碰到的。 密码框常规写法&#xff1a; <view class"inputBox"><view class"input-container"><input type"{{inputType}}" placeholder"请输入密码" data-id"passwordValue" bindin…...

Gatsby知识框架

一、Gatsby 基础概念 1. 核心特性 基于React的静态站点生成器&#xff1a;使用React构建&#xff0c;输出静态HTML/CSS/JS GraphQL数据层&#xff1a;统一的数据查询接口 丰富的插件系统&#xff1a;超过2000个官方和社区插件 高性能优化&#xff1a;自动代码分割、预加载、…...

TCP协议十大核心特性深度解析:构建可靠传输的基石

TCP&#xff08;传输控制协议&#xff09;作为互联网的"交通指挥官"&#xff0c;承载着全球80%以上的网络流量。本文将深入解析TCP协议的十大核心特性&#xff0c;通过原理剖析、流程图解和实战案例&#xff0c;揭示其如何实现高效可靠的数据传输。 一、面向连接的可…...

【架构】RUP统一软件过程:企业级软件开发的全面指南

一、RUP概述 RUP(Rational Unified Process&#xff0c;统一软件过程)是由Rational Software公司(后被IBM收购)开发的一种迭代式软件开发过程框架。它结合了传统瀑布模型的系统性和敏捷方法的灵活性&#xff0c;为中大型软件项目提供了全面的开发方法论。 RUP不仅仅是一种过程…...

基于智能家居项目 实现DHT11驱动源代码

DHT11 温湿度传感器的数据读取一般分为 四个步骤&#xff0c;下面详细介绍每个步骤的具体内容&#xff1a; 步骤一&#xff1a;主机发送起始信号 主机&#xff08;如 MCU&#xff09;主动向 DHT11 发送开始信号&#xff0c;方式为&#xff1a; 将数据线拉低 至少 18ms&…...

小程序的内置组件

一、Text文本组件 1.Text组件解析 Text组件用于显示文本, 类似于span标签, 是行内元素 user-select属性决定文本内容是否可以让用户选中 space有三个取值(了解) decode是否解码(了解) decode可以解析的有 < > &amp; &apos; &ensp; &emsp;二、Butto…...

T-BOX硬件方案深度解析:STM32与SD NAND Flash存储的完美搭配

在智能网联汽车快速发展的当下&#xff0c;车载 T-BOX&#xff08;Telematics Box&#xff09;作为车辆与云端互联的核心枢纽&#xff0c;其性能和可靠性直接决定了用户体验的上限。米客方德&#xff08;MK&#xff09;推出的基于 STM32H7RX 主控芯片与 MKDV4GIL-AST&#xff0…...

hadoop3.x单机部署

jdk hadoop3.x需要jdk8以上的版本 hadoop3.x 从官网下载对应的tar.gz文件 配置环境变量 vim /etc/profile# 需要替换为自己的安装地址&#xff01;&#xff01;&#xff01; export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-amd64 export PATH$PATH:$JAVA_HOME/bin expo…...

Hadoop的目录结构和组成

Hadoop 目录结构 bin 目录&#xff1a;包含了 Hadoop 的各种命令行工具&#xff0c;如hadoop、hdfs等&#xff0c;用于启动和管理 Hadoop 集群&#xff0c;以及执行各种数据处理任务。etc 目录&#xff1a;存放 Hadoop 的配置文件&#xff0c;包括core-site.xml、hdfs-site.xm…...

深度剖析 RTX 4090 GPU 算力租赁:从技术优势到生态价值的全维度解析​

一、引言&#xff1a;当算力成为数字经济的 "新石油"​ 在 AI 大模型训练成本突破千万美元大关、元宇宙场景渲染需求呈指数级增长的 2025 年&#xff0c;算力已然成为驱动技术创新的核心生产要素。NVIDIA RTX 4090 显卡作为消费级 GPU 的性能天花板&#xff0c;正通…...

基于MATLAB的生物量数据拟合模型研究

一、研究背景 在现代科学研究与工程实践的广泛领域中&#xff0c;数据拟合扮演着举足轻重的角色。从物理学中对复杂物理现象的建模&#xff0c;到生物学里对生物生长规律的探究&#xff0c;数据拟合已成为揭示数据内在规律、构建有效数学模型的关键技术手段。其核心要义在于&am…...

VSCode设置SSH免密登录

引言 2025年05月13日20:21:14 原来一直用的PyCharn来完成代码在远程服务器上的运行&#xff0c;但是PyCharm时不时同步代码会有问题。因此&#xff0c;尝试用VSCode来完成代码SSH远程运行。由于VSCode每次进行SSH连接的时候都要手动输入密码&#xff0c;为了解决这个问题在本…...

微信小程序的开发及问题解决

HttpClient 测试例子 SpringBootTest public class HttpClientTest {/*** 测试通过httpclient发送get方式的请求*/Testpublic void testGET() throws IOException {//创建httpclient对象CloseableHttpClient httpClient HttpClients.createDefault();//创建请求对象HttpGet ht…...