likes
comments
collection
share

Webpack还是Vite?前段时间尤大在Vue 3.0 beta直播中提到了一个vite的工具,其描述是:针对Vue单

作者站长头像
站长
· 阅读数 77

前段时间尤大在Vue 3.0 beta直播中提到了一个vite的工具,其描述是:针对Vue单页面组件的无打包开发服务器,可以直接在浏览器运行请求的vue文件,对其原理比较感兴趣,因此体验并写下了本文,主要包括vite实现原理分析和一些思考。

早期 Webpack 刚出来的时候,是为了解决低版本浏览器不支持 ESM 模块化的问题,将各个分散的 Java 模块合并成一个文件,同时将多个 Java 脚本文件合并成一个文件,减少 HTTP 请求的数量,有助于提升页面首次访问的速度。后期 Webpack 乘胜追击,引入了 Loader、Plugin 机制,提供了各种构建相关的能力(babel转义、css合并、代码压缩),取代了同期的 Browserify、Gulp。

如今,HTTP/2 的盛行,HTTP/3 也即将发行,再加上 5G 网络的商用,减少 HTTP 请求数量起到的作用已经微乎其微,而且新版的浏览器基本已经支持了 ESM( < module> )。

Webpack还是Vite?前段时间尤大在Vue 3.0 beta直播中提到了一个vite的工具,其描述是:针对Vue单

Java modules 上手 vite

vite 带着它的历史使命随之出现。由于省略了打包的过程,首次启动 vite 的时候可谓秒开,完全无需等待就能进入开发。

想要尝试 vite ,可以直接通过如下命令

npm init @vitejs/app
yarn create @vitejs/app

支持的模板预设包括:

  • vanilla
  • vue
  • vue-ts
  • react
  • react-ts
  • preact
  • preact-ts
  • lit-element
  • lit-element-ts

目前 vite 都是和 vue 3 搭配使用,如果要在 vue 2 使用 vite 估计还得等正式版发布。当然,能上 vue 3 还是上 vue 3 吧,无论性能、包大小还有 ts 加持方面,vue 3 都远优于 vue 2 。除了 vue,vite 还提供了 react、preat 相关的模板

生成的 vue 项目的目录结构如下

Webpack还是Vite?前段时间尤大在Vue 3.0 beta直播中提到了一个vite的工具,其描述是:针对Vue单

项目的入口为 index.html ,html 文件中直接使用了浏览器原生的 ESM( type="module" ) 能力。关于浏览器 ESM 能力的介绍,可以阅读我之前的文章《前端模块化的今生》。

< type= "module"src= "/src/main.js"> </ >

所有的 js 文件经过 vite 处理后,其 import 的模块路径都会被修改,在前面加上 /@modules/ 。当浏览器请求 import 模块的时候,vite 会在 node_modules 中找到对应的文件进行返回。

import{ createApp } from'vue'
import App from './App.vue'

import './index.css'

createApp(App).mount( '#app')

Webpack还是Vite?前段时间尤大在Vue 3.0 beta直播中提到了一个vite的工具,其描述是:针对Vue单

请求

这样就省略了打包的过程,大大提升了开发效率。当然 vite 也提供了生产模式,利用 Rollup 进行构建。

总结

vite 刚刚发布的时候,还只能做 vue 的配套工具使用,现在已经支持了 JSX、Type、Web Assembly、PostCSS 等等一系列能力。到底能不能革了 webpack 的命,就看天意了

对了,vite 和 vue 一样,来自法语,中文是「快」的意思

免费面试题web前端开发工程师(vue)

转载自:https://juejin.cn/post/6982040108438388767
评论
请登录