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

(七)什么是Vite——vite优劣势、命令

 vite分享ppt,感兴趣的可以下载:

​​​​​​​Vite分享、原理介绍ppt

什么是vite系列目录:

(一)什么是Vite——vite介绍与使用-CSDN博客

(二)什么是Vite——Vite 和 Webpack 区别(冷启动)-CSDN博客

(三)什么是Vite——Vite 主体流程(运行npm run dev后发生了什么?)-CSDN博客

(四)什么是Vite——冷启动时vite做了什么(源码、middlewares)-CSDN博客

(五)什么是Vite——冷启动时vite做了什么(依赖、预构建)-CSDN博客

(六)什么是Vite——热更新时vite、webpack做了什么-CSDN博客

(七)什么是Vite——vite优劣势、命令-CSDN博客

为什么生产环境仍需打包

尽管原生 ESM 现在得到了广泛支持,但由于嵌套导入会导致额外的网络往返,在生产环境中发布未打包的 ESM 仍然效率低下(即使使用 HTTP/2)。为了在生产环境中获得最佳的加载性能,最好还是将代码进行 tree-shaking、懒加载和 chunk 分割(以获得更好的缓存)。

要确保开发服务器和生产环境构建之间的最优输出和行为一致并不容易。所以 Vite 附带了一套 构建优化 的 构建命令,开箱即用。

为何不用 ESBuild 打包?

Vite 目前的插件 API 与使用 esbuild 作为打包器并不兼容。尽管 esbuild 速度更快,但 Vite 采用了 Rollup 灵活的插件 API 和基础建设,这对 Vite 在生态中的成功起到了重要作用。目前来看, Rollup 提供了更好的性能与灵活性方面的权衡。

Webpack 和 Rollup 区别

Rollup 是一个 JavaScript 模块打包工具,可以将多个小的代码片段编译为完整的库和应用。与传统的 CommonJS 和 AMD 这一类非标准化的解决方案不同,Rollup 使用的是 ES6 版本 Javascript 中的模块标准。新的 ES 模块可以让你自由、无缝地按需使用你最喜爱的库中那些有用的单个函数。这一特性在未来将随处可用,但 Rollup 让你现在就可以,想用就用。

Rollup 是基于 ESM 的 JavaScript 打包工具。相比于其他打包工具如 Webpack ,他总是能打出更小、更快的包。因为 Rollup 基于 ESM 模块,比 Webpack 和 Browserify 使用的 CommonJS模块机制更高效。

Rollup的亮点在于同一个地方,一次性加载。能针对源码进行 Tree Shaking(去除那些已被定义但没被使用的代码),以及 Scope Hoisting 以减小输出文件大小提升运行性能。

Rollup分为 build(构建)阶段和 output generate(输出生成)阶段。主要过程如下:

  • 获取入口文件的内容,包装成 module,生成抽象语法树
  • 对入口文件抽象语法树进行依赖解析
  • 生成最终代码
  • 写入目标文件

这里想对Rollp进行更深入的学习可以看看 rollup.js 中文文档 | rollup.js中文网

Rollup插件机制:

Rollup 的打包过程中,会定义一套完整的构建生命周期,从开始打包到产物输出,中途会经历一些标志性的阶段,并且在不同阶段会自动执行对应的插件钩子函数(Hook)。

Vite 的插件机制是基于 Rollup 来设计的。Vite 模拟了 Rollup 的插件机制,设计了一个 PluginContainer 对象来调度各个插件。

PluginContainer 的 实现 基于借鉴于 WMR 中的rollup-plugin-container.js,主要分为 2 个部分:

  • 1、实现 Rollup 插件钩子的调度
  • 2、实现插件钩子内部的 Context 上下文对象

PluginContainer的定义了一系列执行plugin的方法。如buildStart、resolveId、load、transform。

经验法则:对于应用使用 webpack,对于类库使用 Rollup。

如果你的项目(特别是类库)只有JavaScript,而没有其他的静态资源文件,使用Webpack就有点大才小用了。因为Webpack 打包的文件的体积略大,运行略慢,可读性略低。这时候Rollup也不失为一个好选择。如果您的代码库是基于 ES2015 模块的,而且希望你写的代码能够被其他人直接使用,你需要的打包工具可能是 Rollup 。

如果你需要代码拆分(Code Splitting),或者你有很多静态资源需要处理,再或者你构建的项目需要引入很多CommonJS模块的依赖,那么 webpack 是个很不错的选择。

小结:

webpack 是一个全能选手,啥都能干,只是有点复杂,对新手不太友好。

Rollup 是后起之秀,打包更简洁。

vite 把 rollup 变成了“开袋即食”,便于新手入门。

create-vue 基本取代了 vue-cli,除非你想创建 vue2 的项目。

所以,想创建一个 vue3 的项目,首选 create-vue,非常方便快捷,建立的项目也可以统一风格。

Vite 优势:

1. vite 开发服务器启动速度比 webpack 快(快速的冷启动)

webpack 会先打包,然后启动开发服务器,请求服务器时直接给予打包结果,如果项目规模庞大,打包时间必然很长。

由于现代浏览器本身就支持ES Module,会自动向依赖的Module发出请求。vite充分利用这一点,将开发环境下的模块文件,就作为浏览器要执行的文件,而不是像webpack那样进行打包合并。所以,Vite只启动一台静态页面的服务器,不会打包全部项目文件代码,服务器根据客户端的请求加载不同的模块处理,实现按需加载。而 vite 在启动开发服务器时不需要打包,也就意味着不需要分析模块的依赖、不需要编译,因此启动速度非常快。当浏览器请求某个模块时,再根据需要对模块内容进行编译。这种按需动态编译的方式,极大的缩减了编译时间,项目越复杂、模块越多,vite的优势越明显。

2. vite 热更新比 webpack 快(快速的热更新)

在 HMR 方面,当改动了一个模块后,vite仅需让浏览器重新请求该模块即可,不像webpack那样需要把该模块的相关依赖模块全部编译一次,效率更高。

3. vite 使用esbuild(Go 编写) 预构建依赖,比 webpack 的 nodejs,快 10-100 倍。

4.-unbundle 机制的核心:

  • 模块之间的依赖关系的解析由浏览器实现;
  • 文件的转换由 dev server 的 middlewares 实现并做缓存;
  • 不对源文件做合并捆绑操作;

Vite 劣势:

1. 打包到生产环境时,vite使用传统的 rollup(也可以自己手动安装webpack来)进行打包,所以,vite的优势是体现在开发阶段;

2. 项目的开发浏览器要支持 ES Module,而且不能识别 CommonJS 语法;

3.一些第三方 sdk 没有产出 ems 格式的的代码,这个需要自己去做一些兼容;

4.由于 unbundle 机制,首屏期间、懒加载方面需要额外做以下工作:和 Webpack 对比,Vite 把需要在 dev server 启动过程中完成的工作,转移到了 dev server 响应浏览器请求的过程中,不可避免的导致首屏性能下降。不过首屏性能差只发生在 dev server 启动以后第一次加载页面时发生。之后再 reload 页面时,首屏性能会好很多。原因是 dev server 会将之前已经完成转换的内容缓存起来。

  • 不对源文件做合并捆绑操作,导致大量的 http 请求;
  • dev server 运行期间对源文件做 resolve、load、transform、parse 操作;
  • 预构建、二次预构建操作也会阻塞首屏请求,直到预构建完成为止。

命令行界面

开发服务器

vite #

在当前目录下启动 Vite 开发服务器。

使用

vite [root]

选项

选项

--host [host]

指定主机名称 ( string )

--port

指定端口 ( number )

--https

使用 TLS + HTTP/2 ( boolean )

--open [path]

启动时打开浏览器 ( boolean | string )

--cors

启用 CORS ( boolean )

--strictPort

如果指定的端口已在使用中,则退出 ( boolean )

--force

强制优化器忽略缓存并重新构建 ( boolean )

-c, --config

使用指定的配置文件 ( string )

--base

公共基础路径(默认为:/ )( string )

-l, --logLevel

Info | warn | error | silent ( string )

--clearScreen

允许或禁用打印日志时清除屏幕 ( boolean )

-d, --debug [feat]

显示调试日志 ( string | boolean )

-f, --filter

过滤调试日志 ( string )

-m, --mode

设置环境模式 ( string )

-h, --help

显示可用的 CLI 选项

-v, --version

显示版本号

构建

vite build #

构建生产版本。

使用

vite build [root]

选项

选项

--target

编译目标(默认为: "modules" )( string )

--outDir

输出目录(默认为: dist )( string )

--assetsDir

在输出目录下放置资源的目录(默认为: "assets" )( string )

--assetsInlineLimit

静态资源内联为 base64 编码的阈值,以字节为单位(默认为: 4096 )( number )

--ssr [entry]

为服务端渲染配置指定入口文件 ( string )

--sourcemap [output]

构建后输出 source map 文件(默认为: false )( boolean | "inline" | "hidden" )

--minify [minifier]

允许或禁用最小化混淆,或指定使用哪种混淆器(默认为: "esbuild" )( boolean | "terser" | "esbuild" )

--manifest [name]

构建后生成 manifest.json 文件 ( boolean | string )

--ssrManifest [name]

构建后生成 SSR manifest.json 文件 ( boolean | string )

--force

强制优化器忽略缓存并重新构建(实验性)( boolean )

--emptyOutDir

若输出目录在根目录外,强制清空输出目录 ( boolean )

-w, --watch

在磁盘中模块发生变化时,重新构建 ( boolean )

-c, --config

使用指定的配置文件 ( string )

--base

公共基础路径(默认为: / )( string )

-l, --logLevel

Info | warn | error | silent ( string )

--clearScreen

允许或禁用打印日志时清除屏幕 ( boolean )

-d, --debug [feat]

显示调试日志 ( string | boolean )

-f, --filter

过滤调试日志 ( string )

-m, --mode

设置环境模式 ( string )

-h, --help

显示可用的 CLI 选项

其他

vite optimize #

预构建依赖。

使用

vite optimize [root]

选项

选项

--force

强制优化器忽略缓存并重新构建 ( boolean )

-c, --config

使用指定的配置文件 ( string )

--base

公共基础路径(默认为: / )( string )

-l, --logLevel

Info | warn | error | silent ( string )

--clearScreen

允许或禁用打印日志时清除屏幕 ( boolean )

-d, --debug [feat]

显示调试日志 ( string | boolean )

-f, --filter

过滤调试日志 ( string )

-m, --mode

设置环境模式 ( string )

-h, --help

显示可用的 CLI 选项

vite preview #

本地预览构建产物。不要将其用作生产服务器,因为它不是为此而设计的。

使用

vite preview [root]

选项

选项

--host [host]

指定主机名称 ( string )

--port

指定端口 ( number )

--strictPort

如果指定的端口已在使用中,则退出 ( boolean )

--https

使用 TLS + HTTP/2 ( boolean )

--open [path]

启动时打开浏览器 ( boolean | string )

--outDir

输出目录(默认为: dist )( string )

-c, --config

使用指定的配置文件 ( string )

--base

公共基础路径(默认为: / )( string )

-l, --logLevel

Info | warn | error | silent ( string )

--clearScreen

允许或禁用打印日志时清除屏幕 ( boolean )

-d, --debug [feat]

显示调试日志 ( string | boolean )

-f, --filter

过滤调试日志 ( string )

-m, --mode

设置环境模式 ( string )

-h, --help

显示可用的 CLI 选项

 感兴趣的可以看看下面的文章:

参考文章

  • Vite 官方中文文档 # 链接-Vite 官方中文文档
  • webpack官网 # 链接-webpack官网
  • esbuild官网 # 链接-esbuild官网
  • rollup官网 # 链接-rollup官网
  • vite的基本使用 # 链接-vite的基本使用
  • 什么是 Vite? # 链接-什么是 Vite?
  • 漫谈构建工具(四): 为什么有人说 vite 快,有人却说 vite 慢? # 链接-漫谈构建工具(四): 为什么有人说 vite 快,有人却说 vite 慢?
  • 一文详解【webpack】打包原理 # 链接-一文详解【webpack】打包原理
  • [万字总结] 一文吃透 Webpack 核心原理 # 链接-[万字总结] 一文吃透 Webpack 核心原理
  • 面向未来的前端构建工具-vite # 链接-面向未来的前端构建工具-vite
  • Vue3通透教程【二】更高效的构建工具—Vite # 链接-Vue3通透教程【二】更高效的构建工具—Vite
  • vite详解 # 链接-vite详解
  • Vite 完整版详解 # 链接-Vite 完整版详解
  • Vite介绍和原理解析 # 链接-Vite介绍和原理解析
  • 【一】尤大神都说Vite香,让我来手把手分析Vite原理 # 链接-【一】尤大神都说Vite香,让我来手把手分析Vite原理
  • Vue3之——和Vite不得不说的事 # 链接-Vue3之——和Vite不得不说的事
  • Vite基本使用 # 链接-Vite基本使用
  • Vite介绍和原理解析 # 链接-Vite介绍和原理解析
  • Vite 特性和部分源码解析 # 链接-Vite 特性和部分源码解析
  • 前端构建工具vite进阶系列(零) -- 全局概况 # 链接-前端构建工具vite进阶系列(零) -- 全局概况(系列)
  • 前端构建工具vite进阶系列(一) -- vite比webpack的优势与开箱即用 # 链接-前端构建工具vite进阶系列(一) -- vite比webpack的优势与开箱即用
  • 前端构建工具vite进阶系列(二) -- vite的依赖预构建与配置文件相关处理 # 链接-前端构建工具vite进阶系列(二) -- vite的依赖预构建与配置文件相关处理
  • 前端构建工具vite进阶系列(三) -- 静态资源与css模块化的处理 # 链接-前端构建工具vite进阶系列(三) -- 静态资源与css模块化的处理
  • 前端构建工具vite进阶系列(四) -- 插件系统让vite变得更强大 # 链接-前端构建工具vite进阶系列(四) -- 插件系统让vite变得更强大
  • 前端构建工具vite进阶系列(五) -- vite的热更新(HMR)机制的实践与原理 # 链接-前端构建工具vite进阶系列(五) -- vite的热更新(HMR)机制的实践与原理
  • 前端构建工具vite进阶系列(六) -- vite在实际项目中所能带来的性能优化 # 链接-前端构建工具vite进阶系列(六) -- vite在实际项目中所能带来的性能优化
  • 前端构建工具vite进阶系列(七) -- vite与ts、框架的结合实践 # 链接-前端构建工具vite进阶系列(七) -- vite与ts、框架的结合实践
  • 前端构建工具vite进阶系列(八) -- vite本地服务器、esbuild、rollup以及跨域的处理 # 链接-前端构建工具vite进阶系列(八) -- vite本地服务器、esbuild、rollup以及跨域的处理
  • 重学webpack系列(一) -- 前端模块化的演变历史 # 链接-重学webpack系列(一) -- 前端模块化的演变历史
  • Vite和Webpack的核心差异 # 链接-Vite和Webpack的核心差异
  • 一文说清 webpack、vite、vue-cli、create-vue 的区别 # 链接-一文说清 webpack、vite、vue-cli、create-vue 的区别
  • create-vue快速生成项目,到底是怎么做的 # 链接 -create-vue快速生成项目,到底是怎么做的
  • Vue 团队公开快如闪电的全新脚手架工具 create-vue,未来将替代 Vue-CLI,才300余行代码,学它! # 链接-Vue 团队公开快如闪电的全新脚手架工具 create-vue,未来将替代 Vue-CLI,才300余行代码,学它!
  • vite 源码解析之 create-vite # 链接-vite 源码解析之 create-vite
  • vite介绍 | 与其他构建工具做比较,分析vite预构建和热更新的原理 # 链接-vite介绍 | 与其他构建工具做比较,分析vite预构建和热更新的原理
  • 深入探讨vite是怎么解析.env文件的 # 链接-深入探讨vite是怎么解析.env文件的
  • 深度剖析Vite配置文件 # 链接-深度剖析Vite配置文件
  • Vite项目启动都做了什么?# 链接-Vite项目启动都做了什么?
  • 深入理解Vite核心原理 # 链接-深入理解Vite核心原理
  • vite 依赖预构建-依赖扫描 # 链接-vite 依赖预构建-依赖扫描
  • 【Vite】1380- 详解 Vite 依赖预构建流程 # 链接-【Vite】1380- 详解 Vite 依赖预构建流程
  • 快速理解 Vite 的依赖预构建 # 链接-快速理解 Vite 的依赖预构建
  • 五千字深度解读 Vite 的依赖扫描 # 链接 -五千字深度解读 Vite 的依赖扫描
  • 五千字剖析 vite 是如何对配置文件进行解析的 # 链接-五千字剖析 vite 是如何对配置文件进行解析的
  • 预构建 如何玩转秒级依赖预构建的能力? # 链接-预构建 如何玩转秒级依赖预构建的能力?
  • 【源码】Vite源码分析,是时候弄清楚Vite的原理了 # 链接-【源码】Vite源码分析,是时候弄清楚Vite的原理了
  • vite2 常用插件篇(四)- 进阶插件 # 链接-vite2 常用插件篇(四)- 进阶插件
  • 深入Vite:再谈ESM的高阶特性 # 深入Vite:再谈ESM的高阶特性
  • Vite介绍及实现原理 # Vite介绍及实现原理
  • 前端框架源码解读之Vite # 前端框架源码解读之Vite
  • 下一代前端构建工具 - Vite 2.x 源码级分析 # 下一代前端构建工具 - Vite 2.x 源码级分析
  • 初识 vite 原理,vite 是如何启动项目的 # 初识 vite 原理,vite 是如何启动项目的
  • Vite 是如何兼容 Rollup 插件生态的 # Vite 是如何兼容 Rollup 插件生态的
  • 前端面试必备 | Vite 篇(P1-30) # 前端面试必备 | Vite 篇(P1-30)
  • 一文带你了解vite对浏览器的请求做了什么 # 一文带你了解vite对浏览器的请求做了什么
  • 通俗的解释下Vite能用来干嘛?是怎么回事? # 通俗的解释下Vite能用来干嘛?是怎么回事?

相关文章:

(七)什么是Vite——vite优劣势、命令

vite分享ppt,感兴趣的可以下载: ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录: (一)什么是Vite——vite介绍与使用-CSDN博客 (二)什么是Vite——Vite 和 Webpack 区别&#xff0…...

vue之Error: Unknown option: .devServer.

背景 在使用内网穿透工具时,加入对应的配置,启动出现报错。 一、遇到的问题 报错: Error: Unknown option: .devServer. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options. Error: Unknown …...

基于ssm的房屋租售网站(有报告)。Javaee项目,ssm项目。

演示视频: 基于ssm的房屋租售网站(有报告)。Javaee项目,ssm项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍: 采用M(mode…...

LeeCode AutoX-4 计算几何

题意 传送门 LeeCode AutoX-4 蚂蚁爬行 题解 枚举每一对几何图形,判断相交性,用并查集维护连通性即可。总时间复杂度 O ( n 2 m ) O(n^2 m) O(n2m),其中 n n n 为几何图形数量, m m m 为查询数量。 根据几何图形性质分类讨…...

Vue3 动态设置 ref

介绍 在一些场景,ref设置是未知的需要根据动态数据来决定,如表格中的input框需要我们主动聚焦,就需要给每一个input设置一个ref,进而进行聚焦操作。 Demo 点击下面截图中的编辑按钮,自动聚焦到相应的输入框中。 &…...

fast lio 2 保存每一帧的点云PCD和里程计矩阵 Odom 在txt文件

修改了源代码的 laserMapping.cpp 文件,替换为下面的代码就可以保存了,注意里面有一个路径,需要修改为你的电脑的路径 // This is an advanced implementation of the algorithm described in the // following paper: // J. Zhang and S. Singh. LOAM: Lidar Odometry an…...

当前主流DDos方式有哪几类

随着互联网的普及和技术的进步,网络安全问题日益凸显。DDoS攻击作为其中一种常见且具破坏性的攻击方式,受到了广泛关注。小德将带领大家一起来了解当前流行的三种DDoS攻击方式。 1. 容量耗尽攻击 容量耗尽攻击是最常见也是最直接的DDoS攻击方式。攻击者通…...

神经网络常见评价指标AUROC(AUC-ROC)、AUPR(AUC-PR)

神经网络的性能可以通过多个评价指标进行衡量,具体选择哪些指标取决于任务的性质。以下是神经网络中常见的评价指标: 准确性(Accuracy): 准确性是最常见的分类任务评价指标,表示模型正确预测的样本数占总样…...

Apache Doris安装部署

Apache Doris安装部署 版本: CentOS 7.6 Apache Doris 0.14.0 编译 选择合适的版本进行下载,此次选择0.14.0版本 下载 | Apache Doris 一、CentOS编译 1 安装依赖 sudo yum groupinstall Development Tools && sudo yum install maven c…...

Excel查询时用vlookup或者xlookup时,虽然用的参数选择的是精确匹配,但是发现不能区分大小写,应该如何解决?

Excel查询时用vlookup或者xlookup时,虽然用的参数选择的是精确匹配,但是发现不能区分大小写,应该如何解决? Index函数解决 INDEX([excel1.xlsx]Sheet1!$E:$E,MATCH(1,EXACT(G5,[excel1.xlsx]Sheet1!$E:$E)*1,0))重点说明&#x…...

4种经典的限流算法

0、基础知识 1000毫秒内,允许2个请求,其他请求全部拒绝。 不拒绝就可能往db打请求,把db干爆~ interval 1000 rate 2; 一、固定窗口限流 固定窗口限流算法(Fixed Window Rate Limiting Algorithm)是…...

<MySQL> 什么是数据库事务?事务该如何使用?

目录 一、事务的概念 二、事务的核心特性 三、事务操作中的常见BUG 3.1 脏读 3.2 不可重复读 3.3 幻读 四、隔离级别 五、使用事务 一、事务的概念 “事务”是指一组操作,在逻辑上是不可分割的,组成这组操作的各个语句,或者全部执行成…...

Linux 网络:PMTUD 简介

文章目录 1. 前言2. Path MTU Discovery(PMTUD) 协议2.1 PMTUD 发现最小 MTU 的过程 3. Linux 的 PMTUD 简析3.1 创建 socket 时初始化 PMTUD 模式3.2 数据发送时 PMTUD 相关处理3.2.1 源头主机发送过程中 PMTU 处理3.2.2 转发过程中 PMTUD 处理 4. PMTUD 观察5. 参考链接 1. 前…...

BatchNormalization:解决神经网络中的内部协变量偏移问题

ICML2015 截至目前51172引 论文链接 代码连接(planing) 文章提出的问题 减少神经网络隐藏层中的”内部协变量偏移”问题。 在机器学习领域存在“协变量偏移”问题,问题的前提是我们划分数据集的时候,训练集和测试集往往假设是独立同分布(i.i.d)的,这种独立同分布更有利于…...

DAC实验(DAC 输出三角波实验)(DAC 输出正弦波实验)

DAC 输出三角波实验 本实验我们来学习使用如何让 DAC 输出三角波,DAC 初始化部分还是用 DAC 输出实验 的,所以做本实验的前提是先学习 DAC 输出实验。 使用 DAC 输出三角波,通过 KEY0/KEY1 两个按键,控制 DAC1 的通道 1 输出两种…...

许多网友可能还不知道,升级到Windows 11其实没那么复杂,只要符合几个条件可以了

如果你的Windows 10电脑可以升级Windows 11,现在怎么办?有几种方法可以免费安装新的操作系统。以下是你的选择。 如果你想升级到Windows 11,你可以随时购买一台已经安装了操作系统的新电脑。然而,如果你目前的Windows 10 PC满足所有必要的升级要求,那么在Windows 11免费的…...

ubuntu下载conda

系统:Ubuntu18.04 (1)下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh 报错错误 403:Forbidden 解决方法 wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsingh…...

重磅 | 进一步夯实生态建设,朗思科技与阿里龙蜥完成兼容性认证

近日,北京朗思智能科技有限公司(以下简称“朗思科技”)自主研发的数字员工产品与OpenAnolis龙蜥社区龙蜥操作系统(Anolis OS)8完成兼容性认证。测试结果显示,双方产品相互兼容,功能正常&#xf…...

Qt给控件添加图片

双击qrc文件,选择下面的addFiles,将图片添加进来,然后选中图片右键Select All 设置控件字符: ui.btnSet->setText(""); 设置资源: ui.btnSet->setStyleSheet("QPushButton{background-image:…...

3.6-Dockerfile语法梳理及最佳实践

WORKDIR是设置当前docker的工作目录 ADD 和 COPY 为了将本地的一些文件添加到docker image里面,ADD 和 COPY的作用特别像,但是ADD 和 COPY还有一些区别,ADD不仅可以添加本地文件到docker里面,还可以将文件在添加到docker image里面…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...