当前位置:首页 > 技术文章 > 正文内容

尤雨溪新品Vite的魔力,详解(vite 尤雨溪)

zonemu3个月前 (07-26)技术文章30


上篇《尤雨溪是个恶魔,Vite 三天 10 更》谈到了 Webpack 这一系列打包工具出现的原因。


这些工具的出现是为了解决 ES Modules 模块系统本身的环境兼容问题、以及零散的模块文件导致的频繁网络请求发送和模块化发散的问题等等。


既然已经有了 Webpack,尤大再整一个 Vite 到底有啥用呢?


本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。


Vue 脚手架工具 vue-cli 使用 webpack 进行打包,开发时可以启动本地开发服务器,实时预览。因为需要对整个项目文件进行打包,开发服务器启动缓慢。



而对于开发时文件修改后的热更新 HMR 也存在同样的问题。


Webpack 的热更新会以当前修改的文件为入口重新 build 打包,所有涉及到的依赖也都会被重新加载一次。



Vite 则很好地解决了上面的两个问题。


先来打包问题。vite 只启动一台静态页面的服务器,对文件代码不打包,服务器会根据客户端的请求加载不同的模块处理,实现真正的按需加载。



对于热更新问题,vite 采用立即编译当前修改文件的办法。同时 vite 还会使用缓存机制( http 缓存 => vite 内置缓存 ),加载更新后的文件内容。


所以,vite 具有了快速冷启动、按需编译、模块热更新等优良特质。


综上所述,vite 构建项目与 vue-cli 构建的项目在开发模式下还是有比较大的区别:


1、Vite 在开发模式下不需要打包可以直接运行,使用的是 ES6 的模块化加载规则;Vue-CLI 开发模式下必须对项目打包才可以运行。


2、Vite 基于缓存的热更新,Vue-CLI 基于 Webpack 的热更新。


说了这么多,vite 到底应该怎么用呢?


虽然目前还没有正式发布,但是文档已经写的差不多了。https://vitejs.dev/guide/



我们简单来使用一下。


| 确保 Node 版本是大于等于 12 的。


使用 NPM 命令:

 $ npm init @vitejs/app


或者使用 Yarn 命令:

 $ yarn create @vitejs/app


命令执行后,会让我们选择构建哪一种框架的项目,我这里就直接选择 vue 了。



如果你不想在命令行中做选择,可以指定具体的模板。

$ npm init @vitejs/app my-vue-app --template vue



注意,不管那种构建方式,只是下载了项目代码模板。运行项目所需要的第三方扩展都需要再次安装才能够运行。


进入到项目目录,安装所需依赖,并启动项目:

cd  <my-project>  
npm install (or `yarn`)  
npm run dev (or `yarn dev`)


通过 package.json 文件,我们能看到启动和打包的命令。



通过 npm run dev 命令,启动开发服务器。



查看运行结果:



使用 npm run build 命令进行打包:



需要注意的是,打包后的代码,在本地依然需要提供一台静态服务器才能运行。


体验就到这里了。想要感受尤大的魔鬼更新速度的,可以去 github 看看:https://github.com/vitejs/vite

相关文章

使用Java统计gitlab代码行数(统计github代码行数的方法)

使用Java统计gitlab代码行数一、背景:需要对当前公司所有的项目进行代码行数的统计二、 可实现方式1.脚本:通过git脚本将所有的项目拉下来并然后通过进行代码行数的统计样例:echo 创建项目对...

Web前端全套教程+视频包含JavaScript、Vue等

写在前面:web前端从入门到精通经典教程,老师精心讲,想从事编程或者数据分析行业的小伙伴点进来,只需你评论并关注私信留言“前端”。便可免费获取。WEB前端简介:WEB前端工程师,也叫Web前端开发工程...

育知HTML5培训,为什么要学习“HTML5混合式开发技术”

HTML5 的广泛应用,强势崛起企业现在安卓、iOS开发人员都在学习HTML5混合开发,节约成本、一专多能是未来很多企业用人趋势!HTML5工程师在今后的工作中与 Android、iOS工程师对接的几...

2025最值得入手的AI数据分析工具:奥威BI深度评测报告

一、引言在数字化时代,数据已成为企业决策的重要依据。然而,海量数据的处理与分析往往耗费大量时间与精力。为此,AI数据分析工具应运而生,其中奥威BI作为一款备受瞩目的产品,凭借其强大的功能与智能特性,成...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2...

Excel中的FILTER函数详细介绍及使用示例

在Excel中处理大量数据时,经常需要根据特定条件筛选出符合条件的数据行或列。这正是Excel的FILTER函数发挥作用的地方。FILTER函数是Excel中一个非常强大的工具,它可以基于一个或多个条...