最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 浅谈Vite 原理与 Webpack比较

    正文概述 掘金(Jervis_cen)   2021-01-31   924

    去年vue3发布弯屁斯版的时候,伴生打包工具vite的说明吸引了我。实际跑了一下,项目构建速度和webpack没有差太多,但是开发热更新速度真的是快的飞起!

    vite 在法文里是“快”的意思

    浅谈Vite 原理与 Webpack比较

    1.Vite 的定义:

    浅谈Vite 原理与 Webpack比较

    主流的浏览器(IE11除外)均已经支持,其最大的特点是在浏览器端使用export import的方式导入和导出模块,在 script 标签里设置type="module",然后使用模块内容。 (注:图来源caniuse.com)

    <script type="module">   
      import { contant } from './contant.js‘ 
    </script>
    

    vite 与 webpack 的比较

    如果应用过于复杂,使用Webpack 的开发过程会出现以下问题

    1. Webpack Dev Server 冷启动时间会比较长
    2. Webpack HMR 热更新的反应速度比较慢

    vite的特点

    1. 轻量
    2. 按需打包
    3. HMR (热渲染依赖)

    webpack dev server 在启动时需要先build一遍,而这个过程需要消耗很多时间

    浅谈Vite 原理与 Webpack比较

    而Vite 不同的是 执行vite serve 时,内部直接启动了web Server, 并不会先编译所有的代码文件。

    浅谈Vite 原理与 Webpack比较

    但是webpack 这类工具的做法是将所有模块提前编译、打包进bundle里,换句话说,不管模块是否会被执行,都要被编译和打包到bundle里。随着项目越来越大,打包后的bundle也越来越大,打包的速度自然会越来越慢。

    Vite安装

    //yarn
    $ yarn create vite-app <project-name>
    $ cd <project-name>
    $ yarn
    $ yarn dev
    
    //npm
    $ npm init vite-app <project-name> 
    $ cd <project-name> 
    $ npm install 
    $ npm run dev
    

    初始化之后,Vite的项目结构如下

    |____node_modules 
    |____App.vue // 应用入口 |____index.html // 页面入口 
    |____vite.config.js // 配置文件 
    |____package.json
    

    边说一下 node_modules 中有一个.vite_opt_cache 名称的包,首次冷启动(npm run dev)便会把已用的依赖备份到这个包中

    比如初始化只用了vue,那么当前包便会有vue.js

    浅谈Vite 原理与 Webpack比较

    打包问题(vite build)

    Webpack

    与vite的打包相比, webpack 会需要打包一个一个大体积的bundle.js? 之前会产生打包需求的主要原因:

    1. 浏览器环境并不支持模块化
    2. 零散模块文件会产生大量的http请求(大量请求在浏览器端会出现并发请求资源的问题)
    Vite

    而vite的打包原理是基于es新特性 Dynamic imports 实现的,那对老浏览器必然会有兼容问题 处理方案还是用大剑熟悉的 Polyfill。

    Typescript的编译

    Vite引用了EsBuild 通过go语言对ts jsx 等语言的支持,编译上百个ts文件甚至比 tsc 要快几十倍(尤大自己说的,由于我太懒所以没有实际测过)

    阅读延伸

    http1.1 与 http2 之间才差异

    http2.akamai.com/demo

    关于http2的详解可以看看这两篇文章

    【一文读懂HTTP/2 及 HTTP/3 特性】

    【HTTP/1.1 vs HTTP/2: What's the Difference?】

    如果您看到这里了,如果我的文章对您有帮助,欢迎投币点赞。

    (本文写于2020-10-1,最近从印象笔记整理过来的)


    起源地下载网 » 浅谈Vite 原理与 Webpack比较

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元