Vite为什么这么快?前端开发的新选择

更新日期: 2025-11-20 阅读: 34 标签: Vite

如果你在做前端开发,可能已经听说过Vite。这个构建工具最近很火,主要是因为它真的很快。今天我们就来聊聊Vite为什么能这么快,以及它到底好在哪里。


传统构建工具为什么慢

先说说我们平时用的webpack为什么有时候会觉得慢。

想象一下,你正在开发一个项目,每次保存文件都要等几秒甚至十几秒才能看到变化。一天下来,等待的时间加起来可能有一两个小时。

为什么传统工具会这么慢呢?

当你修改一个文件时,Webpack需要:

  1. 重新编译这个文件

  2. 检查所有相关的依赖文件

  3. 重新打包整个应用

  4. 把更新推送到浏览器

在大型项目中,这个过程可能每次都要10-30秒。一天修改几十次文件,浪费的时间就很可观了。


Vite的解决方案

Vite想了一个很聪明的办法:为什么不直接用浏览器支持的原生模块呢?

基于ES模块的开发服务器

传统方式是把所有代码打包成一个文件:

<script src="/dist/app.8a7b6c5d.js"></script>

Vite的方式是直接使用浏览器支持的原生模块:

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

这样当你修改一个文件时,Vite只需要重新编译这个文件,浏览器会自动重新加载这个模块。其他文件完全不受影响。

依赖预构建

虽然开发时不打包应用代码,但Vite会对第三方库进行预构建:

// 比如lodash库,原来可能有几百个小文件
import debounce from 'lodash/debounce';
import throttle from 'lodash/throttle';

// Vite会把这些合并成一个大文件
import { debounce, throttle } from 'lodash';

这样做有两个好处:

  1. 把CommonJS模块转换成ES模块

  2. 减少浏览器请求数量


极速的热更新

Vite的热更新(HMR)速度很快,几乎是瞬间完成。

当你修改一个vue组件时:

<!-- 修改前 -->
<template>
  <div>Hello World</div>
</template>

<!-- 修改后 -->
<template>
  <div>Hello Vite</div>
</template>

保存文件后,你几乎立即就能在浏览器中看到变化,不需要刷新页面。

这是因为Vite只更新你修改的那个组件,其他组件保持原样。状态也不会丢失,比如表格中填写的数据都会保留。


生产环境构建

开发时虽然不打包,但生产环境还是需要打包的。Vite使用Rollup来打包生产代码,生成优化的文件。

// vite.config.js
export default {
  build: {
    // 输出目录
    outDir: 'dist',
    // 源代码映射
    sourcemap: true,
    //  rollup 配置
    rollupOptions: {
      output: {
        // 代码分割
        manualChunks: {
          vendor: ['vue', 'vue-router'],
          utils: ['lodash', 'axios']
        }
      }
    }
  }
}


和其他工具的对比

和Webpack对比

Webpack功能很全面,但配置复杂,启动慢。Vite开箱即用,几乎零配置,启动快。

和Snowpack对比

两者理念相似,但Vite的生态更丰富,对Vue、react框架的支持更好。


实际使用体验

启动速度

在一个有1500多个模块的项目中:

  • Webpack冷启动:45-60秒

  • Vite冷启动:2-4秒

热更新速度

  • Webpack:3-8秒

  • Vite:50-200毫秒

内存使用

  • Webpack:1.8-2.5 GB

  • Vite:600-800 MB

开发者反馈说,使用Vite后几乎感觉不到等待时间,保存文件后立即就能看到变化,开发效率明显提升。


如何开始使用Vite

创建新项目

# 创建Vue项目
npm create vite@latest my-vue-app -- --template vue

# 创建React项目  
npm create vite@latest my-react-app -- --template react

# 进入项目目录
cd my-vue-app

# 安装依赖
npm install

# 启动开发服务器
npm run dev

现有项目迁移

如果你想把现有的Webpack项目迁移到Vite:

  1. 安装Vite和相关插件

npm install -D vite @vitejs/plugin-vue
  1. 创建Vite配置文件

// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': '/src'
    }
  }
})
  1. 创建html入口文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>My App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>


实用配置技巧

环境变量

// .env.development
VITE_api_BASE=http://localhost:3000/api

// .env.production
VITE_API_BASE=https://api.example.com

// 在代码中使用
console.log(import.meta.env.VITE_API_BASE)

代理配置

// vite.config.js
export default {
  server: {
    proxy: {
      '/api': {
        target: 'http://localhost:8080',
        changeOrigin: true
      }
    }
  }
}

css预处理

export default {
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@import "@/styles/variables.scss";`
      }
    }
  }
}


可能遇到的问题

依赖兼容性

有些老的库可能不支持ES模块,需要在配置中处理:

export default {
  optimizeDeps: {
    include: ['some-commonjs-library']
  }
}

路径别名

如果你用了路径别名,需要在Vite中配置:

export default {
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  }
}


为什么选择Vite

适合的场景

  • 新项目开始

  • 对开发速度有要求

  • 使用现代前端框架

  • 团队希望简化配置

可能不适合的场景

  • 需要大量Webpack特定功能

  • 依赖某些Webpack特有插件

  • 项目结构非常特殊


总结

Vite的出现改变了前端开发的体验。它通过利用现代浏览器的原生模块支持,大幅提升了开发时的构建速度。

主要的优点:

  • 启动速度极快

  • 热更新几乎瞬间完成

  • 配置简单

  • 内存占用小

如果你正在开始一个新项目,或者对现有项目的开发体验不满意,值得试试Vite。它的速度提升真的很明显,可能会让你爱上前端开发的感觉。

Vite代表了前端工具的发展方向:更简单、更快、更专注于开发体验。随着生态的不断完善,它正在成为越来越多开发者的首选。

本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!

链接: https://fly63.com/article/detial/13200

Vite使Vue CLI过时了吗?

Vue 生态系统中有一个名为 Vite 的新构建工具,它的开发服务器比 Vue CLI 快 10-100 倍。这是否意味着 Vue CLI 已经过时了?在本文中,我将比较这两种构建工具

在vite2和Vue3中配置Mockjs

在 Vite2 与 Vue3 中使用Mockjs时有一些官方文档没有提到的注意点,特意做此记录。MockJS 依赖的安装,在 package.json 中设置环境变量,在 vite.config.js 中添加 mockjs 插件

Vite开发环境搭建

Vite现在可谓是炙手可热,可能很多小伙伴还没有使用过Vite,但是我相信大多数小伙伴已经在使用Vite了,因为是太香了有没有。可能在使用过程中很多东西Vite不是配置好的,并不像Vue-cli配置的很周全,那么今天就说一下如何配置开发环境

Vite开发快速入门

Vite (法语意为快速的,发音 /vit/) 是一种面向现代浏览器的一个更轻、更快的前端构建工具,能够显著提升前端的开发体验。除了Vite外,前端著名的构建工具还有Webpack和Gulp。目前,Vite已经发布了Vite2,Vite全新的插件架构、丝滑的开发体验

Vite状态管理

Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。

vue3.x+ts+vite2环境变量配置

默认 dev 环境下使用 .env.development 环境变量配置, build 环境下使用 .env.production ,所以不需要在 package.json 中再指定模式了

vue3 vite 系统标题 系统名称统一配置

想要统一配置系统名称 或者其他的,需要在vue3中使用 vite 的环境变量;vite 的环境变量 需要创建两个文件(和 vite.config.js 文件同一目录)

你还不会写 vite 插件吗?没关系,我教你啊!

vite 其实就是一个由原生 ES Module 驱动的新型 Web 开发前端构建工具。vite 插件 就可以很好的扩展 vite 自身不能做到的事情,比如 文件图片的压缩、 对 commonjs 的支持、 打包进度条 等等。

新朝旧将 vite和webpack煮酒论英雄

我们见证了 webpack、Rollup 和 Parcel 等工具的变迁,它们极大地改善了前端开发者的开发体验。但当我们开始构建越来越大型的应用时,通常需要很长时间才能启动开发服务器

Vite多页面应用配置&使用vite-plugin-html向html模板注入数据或标签

在开发过程中,简单地导航或链接到 /nested/ - 将会按预期工作,与正常的静态文件服务器表现一致。也就是说,如果你的文件夹有如下层级:

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!