JS打包工具 Vite

如何使用vite框架封装一个js库,并发布npm包 vite也可以作为JavaScript模块打包工具,构建一个JavaScript库,并且使用起来容易上手,配置也简单,打包速度很快,并发布到npm上。 阅读详情

Vite是 JS 新一代的打包的工具,它所解决的问题,是前端打包慢的问题,随着前端应用复杂度越来越大,项目文件越来越多,通常项目中都是使用 Webpack 进行打包,Webpack是个静态的打包工具,每次改动都会打包所有文件,即使使用 HMR,速度也是很慢。
Vite 的推出旨在加速打包,提高前端开发效率,Vite 的核心就是将项目的代码分为两个部分,一部分是类库,另外一部分是应用逻辑代码。对于类库,开发中是不会修改的,这部分代码只要启动了 dev-server,打包一次,就可以保持不动。大部分前端的开发工作还是在写业务代码、写 CSS,由于都是基于框架开发,类库很多也很大,很明显这种分离可以使代码转换速度提高很多。Vite主要采用了以下几种手段来提高性能:

基于 ESM

ESM 是通过 ES2015 进行模块化,最新的浏览都已经支持ESM,所以可以借助浏览器进行解析,从而减少了代码转换的性能开销。

依赖编译加速

通过esbuild对依赖进行打包,esbuild是 go 语言开发的,性能是 JS打包工具的 10到 100 倍。

业务源代码转换

在业务源代码中,包含 CSS、JS 等需要转换的文件,并不是所有文件都要第一次启动时就进行转换,Vite 中只有文件被请求才会转换,可以看下图,代码做了切分,当前页面不需要的文件不转换。

在这里插入图片描述

组件更新

在 Vite 中,组件变更时,只会将自己以及临近的依赖进行更新,大多时候只会更新自己,并不会对整个应用进行转换打包。

我们来看一个简单的示例,首先初始化并启动项目:

npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm i
npm run dev

进入 dev tools,看到并没有 dist 目录,而是直接访问 main.js。可以体验一下,确实速度很快,首次进入比 vuecli快太多了。
在这里插入图片描述
Vite 确实很快,但是目前可能还不能完全替代 webpack,Vite 是不支持老项目的,比如 vue2,现在有很多应用还是 vue2 开发的。

vitejs相关用法及原理 使用 Rollup 进行代码打包,支持 Tree-shaking、代码压缩和分块优化,生成兼容性更强的静态资源。通过 WebSocket 监听文件变动,仅编译修改的模块并推送更新,浏览器动态替换模块而不刷新页面。:开发体验极致优化,适合现代浏览器项目和敏捷开发。中配置,Vite 自动处理预处理和编译。降级,生态成熟度待提升。 阅读详情

相关推荐

【项目实战】Vite.js:下一代前端工具链(新型前端构建工具)的技术解析与实践指南

Vite.js,法语意为“快速的”Vite.js,是一种新型前端构建工具,能够显著提升前端开发体验。Vite.js意在提供开箱即用的配置,同时它的插件API和JavaScript API带来了高度的可扩展性,并有完整的类型支持。Vite.js提供了一个更快速的开发体验,特别适合需要快速迭代的项目和小型项目。

奶爸的编程之路,也就一周冷个三天 607

尤雨溪:下一代前端构建工具 ViteJS 技术解读

作者:@清秋https://juejin.cn/post/6937176680251424775Vite 作者 尤雨溪 在 2021 年 2 月 12 日在 Twitch 上做客 GitH...

weixin_46837985的博客 2026

前端开发:JavaScript 模块化打包工具介绍

本文旨在全面介绍JavaScript模块化打包工具的发展历程、核心原理和实际应用。我们将重点分析Webpack、Rollup和Vite这三款主流工具,比较它们的优缺点和适用场景。文章将从模块化概念入手,逐步深入打包工具的核心原理,通过实际案例展示不同工具的使用方法,最后讨论未来发展趋势。模块化:将程序分解为独立、可复用的代码单元的开发方式打包工具:将多个模块及其依赖合并为一个或多个优化后文件的工具:消除未使用代码的优化技术热模块替换(HMR):在不刷新页面的情况下替换更新模块的技术。

小白菜的博客 1075

手把手教你使用vite打包自己的js代码包并推送到npm

手把手教你使用vite打包编译代码库,并上传到npm,然后测试使用

BDawn的专栏 4709

前端 JavaScript 代码的模块化打包工具

本文旨在全面解析前端JavaScript模块化打包工具的技术原理、实现机制和最佳实践。内容涵盖从早期的模块化方案到现代打包工具的演进历程,重点分析Webpack、Rollup和Vite三大主流工具的核心架构和实现细节。文章首先介绍模块化发展历程,然后深入分析打包工具核心原理,接着通过实际案例展示工具使用,最后探讨未来发展趋势。模块化:将程序分解为独立、可复用的代码单元打包:将多个模块及其依赖合并为少量文件的过程:消除未使用代码的优化技术:将代码拆分为多个bundle的技术原生ESM普及。

AI架构全栈开发实战笔记 908

在Ansys Mechanical中对磨损进行建模

在有限元分析中,磨损是通过移动接触表面上的节点来复制材料侵蚀来建模的。仿真迭代更新几何,并在每次更新后重新计算平衡,使过程成为非线性的。Ansys使用将压力、相对运动和材料阻力与表面损失联系起来的经验定律来处理连续介质尺度的磨损。要在Ansys Mechanical中激活磨损建模,必须使用TB,WEAR命令定义专用材料模型。该命令与 TBDATA 相结合,允许用户输入与磨损相关的材料常数,以控制磨损的计算方式以及在接触表面上的应用方式。

jkh920184196的博客 2631

JavaScript 模块化打包工具对比:Webpack、Vite、Rollup 适用场景

同时,Vite 对 ES 模块的原生支持使其更符合现代浏览器的发展趋势,对于无需兼容低版本浏览器的项目(如内部管理系统、移动端 H5 等),Vite 是理想的选择。例如,一个包含数千个模块的大型项目,Webpack 的启动时间可能长达数十秒,热更新也需要几秒才能完成,这在频繁调试的开发过程中会造成明显的效率损耗。总之,Webpack、Vite、Rollup 各有其独特的优势与适用场景,没有绝对的 “最佳工具”,只有 “最适合项目的工具”。一、核心定位与设计理念​。三、功能特性与生态支持​。

2509_93051135的博客 383

GBT 27930-2015/2023国标充电协议A类CAN报文ID说明

国标充电CAN的ID,仅供学习参考。

qqq080的博客 7819

Rolldown速度贼快:下一代JavaScript打包工具,基于Rust的JS打包工具

Rolldown 是使用 Rust 开发的 Rollup.js 编译工具的替代品,基于字节跳动的 Oxc 工具集合构建,它提供与 Rollup 兼容的应用程序接口和插件接口,将作为 Vite 未来使用的打包工具。Rolldown 是一个用 Rust 编写的 JavaScript 打包器,旨在作为 Vite 未来使用的打包器。它提供与 Rollup 兼容的应用程序接口和插件接口,但在范围上更类似于 esbuild。Rolldown 是一个备受瞩目的前端项目,旨在解决当前打包工具的性能瓶颈和兼容性问题。

天天打码-16年老码农 967

FFT中的精度博弈:定点数缩放、块浮点与溢出处理在Vivado IP核中的实践权衡

本文探讨了在Vivado FFT IP核中实现高精度快速傅里叶变换的关键技术,包括定点数缩放策略、块浮点模式及溢出处理机制。通过分析不同精度控制方案的资源开销与性能权衡,为工程师在医疗成像、雷达信号处理等高动态范围应用中优化FFT实现提供实践指导。

melon的博客 1097

mjlab MuJoCo 人形机器人强化学习入门教程(一)安装配置使用

mjlab是融合IsaacLab API与MuJoCo物理引擎的强化学习工具,提供轻量级GPU加速仿真方案。当前处于测试阶段,支持Linux系统(推荐)和有限macOS支持。核心优势包括:1)直接集成MuJoCo Warp实现裸机性能;2)保留IsaacLab成熟的RL抽象层;3)简化安装流程。与IsaacLab相比更专注于MuJoCo生态,适合刚体机器人RL研究。文档包含详细安装指南、平台兼容性说明、与IsaacLab的API差异对比及常见问题解答。项目正在积极开发中,欢迎社区贡献和反馈。

2506_90492529的博客 2002

前端构建打包工具Webpack PK Vite

这只是一些常见的打包工具,实际上还有其他一些工具或框架自带的打包功能,如 Next.js 和 Nuxt.js 框架中的打包配置等。Vite:在生产构建时,会使用类似 Rollup 的打包器进行优化,性能也不错,但对于某些极端大型项目,可能不如 Webpack 成熟。Vite:利用现代浏览器对 ES Modules 的原生支持,在开发阶段提供了极快的热更新速度,同时也支持生产环境的构建。Webpack:配置选项非常丰富和复杂,需要对各种插件和加载器进行精细的配置,对于初学者来说有一定的学习成本。

东南草堂 1424

解决开着代理情况下pip或魔搭下载失败

最近由于经常配环境导致,老是要来回切clash关掉代理,非常的不方便如下面的,魔搭模型下载失败如下面的,pip换源后下载失败。

风吹落叶的博客 2950

JS运行环境、包管理、打包工具总结

运行环境就是代码解析和执行的程序,比如jvm等虚拟机,他们的主要工作就是根据设定的语法规则解析编译代码,然后运行代码。js的语法规则遵循ES规范。

独孤东方朔的博客 1183

【Ellisys】【使用技巧】【二】

支持所有常见的编码器和协议实时播放或保存(无线和HCI)循环播放导出与其他视图协同(OverView 和 Spectrum)可以通过下面的位置看 重传的包。

奔跑吧 android 的博客 137

【QT开发教程】QMatrix4x4类详解及实战应用:Qt中的4x4矩阵变换

在计算机图形学和三维图形应用中,矩阵变换是一个核心概念。Qt框架提供了QMatrix4x4类,用于处理4x4矩阵变换,帮助开发者在三维空间中进行复杂的几何计算。本文将深入探讨QMatrix4x4的功能及其在Qt应用中的实际应用。

科技改变人类,技术成就未来 726

前端打包工具全景解析

在前端工程化体系中,打包工具是连接开发代码与浏览器可执行产物的核心枢纽,既解决了浏览器对模块化、新语法、多类型资源的支持短板,也通过自动化流程大幅提升了开发体验与生产性能。当前主流的前端打包工具已经形成了层次分明、相互依存的生态格局,本文就来拆解它们的核心定位与依赖关系。

m0_51089660的博客 437

深度探索:VS2022 牵手 DeepSeek,开启开发新征程

通过将 VS2022 与 DeepSeek 接入,我们成功开启了智能开发的新征程。从前期的硬件准备、软件环境搭建,到实战环节的一步步配置与整合,再到全面的测试与验证,每一个步骤都充满挑战,但也带来了满满的收获。在实际应用中,VS2022 与 DeepSeek 的结合展现出了强大的优势,为开发者带来了更高的效率和更出色的代码质量。无论是代码自动补全、智能代码审查,还是自然语言交互编程,都让开发过程变得更加智能、便捷,极大地提升了开发体验。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 3524

modern-js-cheatsheet终极模块打包指南:Webpack和Vite配置详解

modern-js-cheatsheet是一份现代JavaScript项目中常见知识的速查表,本文将基于该项目提供Webpack和Vite这两款主流模块打包工具的配置详解,帮助开发者快速掌握现代JavaScript项目的构建流程。 ## 为什么选择Webpack和Vite? 在现代JavaScript开发中,模块打包工具是项目构建的核心环节。Webpack作为老牌打包工具,生态完善且功能强大,

gitblog_00991的博客 781

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Rollup.js:高效JavaScript模块打包工具详解

JavaScript模块打包是现代前端工程化的核心环节,其核心原理是通过静态分析将分散的模块文件合并为优化后的生产代码。Rollup.js作为专注于ES模块的打包工具,凭借其Tree-shaking机制能智能移除未使用代码,显著提升打包效率。在库开发场景中,这种特性尤为关键,Vue、React等主流框架均采用Rollup构建。工具支持ESM、CommonJS等多种输出格式,配合丰富的插件系统可处理TypeScript、CSS等资源。相较于Webpack的全能型定位,Rollup在代码精简度和构建速度上具有明

weixin_33603377的博客 290

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

如何使用Vite构建Vue3项目

官方文档指路:Vite官网Vite(法语意为 "快速的",发音/vit/,发音同 "veet")是由Vue团队开发的打包工具,在使用Vue3进行项目开发时推荐使用Vite进行打包,其支持性要比传统打包工具更好。Vite相比于传统的Webpack相比具有更快的打包速度。Vite通过将应用分为依赖和源码两类,改进了开发服务器启动时间。Vite会瞬间开启一个服务,不会预先编译所有文件,而是等到浏览器需要用到某个文件时,Vite再去请求、编译并响应到客户端。

weixin_45994787的博客 2876

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

vite.config.js详细配置。

vite.config.js详细配置。

weixin_46409887的博客 3万+

Vite:快速构建现代Web应用的工具

Vite 是由 Vue.js 的作者尤雨溪开发的下一代前端构建工具,旨在提高开发体验和构建速度。极速冷启动:Vite利用浏览器的原生 ES 模块支持,在开发环境下无需打包文件,直接提供模块,使冷启动速度极快。按需编译:只有当文件被请求时,Vite 才会进行转换处理,避免了整体打包带来的性能开销。快速热更新(HMR):由于Vite基于ESM(ES模块)进行模块管理,HMR的性能和速度得到了大幅提升。丰富的插件生态。

上进!努力!!! 1414

Bun终极指南:一站式JavaScript运行时环境从入门到精通

Bun是一个令人惊叹的JavaScript运行时环境,它将运行时、打包工具、测试运行器和包管理器完美融合在一个工具中。如果你正在寻找一个能显著提升JavaScript开发效率的解决方案,Bun无疑是当前最值得关注的选择。这个创新的工具不仅速度极快,还提供了完整的开发工具链,让开发者能够专注于代码本身而不是工具配置。 ## 为什么选择Bun? 在JavaScript生态系统中,我们通常需要使用多

gitblog_00490的博客 372

webpack和vite的区别是什么

2.Vite使用的 rollup (注:Rollup 是 ESModule 的产物),在 Tree Shaking 上有着天然的优势,打包体积更小,运行速度更快。esbuild 是采用 Go 语言编写的,Go 语言是纳秒级别的,而 Node.js 是毫秒级别的。ESModule 可以在编译时进行静态优化,还支持 Tree shaking,可以在代码打包时删除未使用的代码,从而减少打包后代码的体积和加载时间,这也是 ESModule 比 CommonJS 更快的原因之一。

Yiu的博客 1060

一文说清 webpack、vite、vue-cli、create-vue 的区别

webpack 是一个全能选手,啥都能干,只是有点复杂,对新手不太友好。Rollup 是后起之秀,打包更简洁。vite 把 rollup 变成了“开袋即食”,便于新手入门。create-vue 基本取代了 vue-cli,除非你想创建 vue2 的项目。

青春木鱼的博客 3241
上一篇: 通过 Ollama、Langchain 实现 RAG
下一篇: OpenAI Token计算方式
hawk2014bj
博客等级 码龄12年 1013粉丝 265原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值