Vite是什么?Vite如何使用?相比于Vue CLI的区别是什么?(一篇文章帮你搞定!)

Vite 简介

        Vite 是一个由 Vue.js 的作者尤雨溪开发的新一代前端构建工具,旨在提供快速的开发体验。Vite 的名字来源于法语,意为“快”,它主要利用了现代浏览器对 ES Modules 的原生支持,从而实现了极快的开发服务器启动时间和热更新速度。

Vite 的核心特性

  1. 极快的开发服务器启动时间:Vite 通过利用 ES Modules 的原生支持,在开发模式下不需要打包整个应用,而是直接在浏览器中加载模块。这大大缩短了开发服务器的启动时间。

  2. 即时热模块替换(HMR):Vite 提供了几乎即时的热模块替换功能,当你修改代码时,仅更新发生变化的模块,而不是整个页面刷新,从而显著提高开发效率。

  3. 原生 ES 模块支持:Vite 充分利用了现代浏览器对 ES 模块的原生支持,避免了传统的打包过程,使得开发和生产环境的表现更加一致。

  4. 插件系统:Vite 支持丰富的插件生态系统,允许开发者根据需要扩展构建过程。

  5. 多种框架支持:除了 Vue.js,Vite 还支持 React、Svelte 等多种前端框架。

Vite 与 Vue CLI 的提升和区别

Vue CLI 是 Vue.js 的一个官方脚手架工具,提供了项目初始化、开发服务器启动、构建等功能。但随着项目规模的增大,Vue CLI 在开发服务器启动和热更新方面逐渐显现出性能瓶颈。Vite 的出现正是为了解决这些问题。

性能提升

Vite 相较于 Vue CLI 在性能上有显著提升,主要体现在以下几个方面:

        1.开发服务器启动时间:Vite 利用 ES 模块的特性,避免了传统打包工具(如 Webpack)的打包过程,从而使开发服务器的启动时间大大缩短。一个简单的 Vue 项目,Vite 可以在几百毫秒内启动,而 Vue CLI 可能需要几秒钟。

# 使用 Vite 启动开发服务器
npm run dev

     2. 热更新速度:Vite 的热更新速度几乎是实时的,因为它仅重新加载发生变化的模块。而 Vue CLI 在进行热更新时,可能需要重新打包整个应用,导致更新速度较慢。 

// 在 Vite 项目中,热更新通常是自动处理的
// 你不需要编写额外的代码

使用 Vite 创建 Vue 项目

要使用 Vite 创建一个 Vue 3 项目,只需简单的几步:

1.安装 Vite:首先,你需要全局安装 Vite。

npm install -g create-vite

2.创建项目:使用 Vite 创建一个 Vue 3 项目。 

npm init vite@latest my-vue-app --template vue

3.安装依赖:进入项目目录并安装依赖。 

cd my-vue-app
npm install

 4.启动开发服务器:启动 Vite 开发服务器。

npm run dev

Vue CLI 与 Vite 的代码对比

 Vite的项目结构

my-vue-app/
├── node_modules/
├── public/
│   ├── favicon.ico
│   └── index.html
├── src/
│   ├── assets/
│   │   └── logo.png
│   ├── components/
│   │   └── HelloWorld.vue
│   ├── views/
│   │   └── Home.vue
│   ├── App.vue
│   ├── main.js
│   └── router/
│       └── index.js
├── .gitignore
├── babel.config.js
├── package.json
├── README.md
├── vue.config.js
└── yarn.lock or package-lock.json
  • 目录/文件说明
    node_modules/存放项目的所有依赖包,由 npm 或 yarn 自动生成和管理。
    public/静态文件目录,里面的文件不会被 Webpack 处理,最终会原样复制到打包目录下。
    public/favicon.ico网站的图标。
    public/index.html应用的主 HTML 文件,Vue CLI 会在构建时自动注入生成的静态资源链接。
    src/源代码目录,存放应用的主要代码。
    src/assets/存放静态资源,如图像、字体等。这些文件会由 Webpack 处理,可以通过相对路径引用。
    src/assets/logo.png示例图像文件。
    src/components/存放 Vue 组件,每个组件都是一个独立的 .vue 文件。
    src/components/HelloWorld.vue默认生成的示例组件。
    src/views/存放视图组件,通常对应路由,每个视图都是一个独立的 .vue 文件。
    src/views/Home.vue默认生成的主页组件。
    src/router/存放路由配置文件。
    src/router/index.js路由的配置文件,定义了应用的路由规则。
    src/App.vue根组件,整个应用的入口组件。
    src/main.js应用的入口文件,负责创建 Vue 实例并挂载到 DOM 上。

Vite 配置

Vite 的配置文件 vite.config.js 允许你进行各种自定义配置。以下是一个简单的配置示例

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': '/src',
    },
  },
  server: {
    port: 3000,
  },
});

 在这个配置中,我们使用了 @vitejs/plugin-vue 插件来支持 Vue 3,并设置了路径别名 @ 指向 /src 目录,以及将开发服务器端口设置为 3000。

Vue CLI 项目结构

使用 Vue CLI 创建的项目结构如下:

my-vue-cli-app/
├── node_modules/
├── public/
├── src/
│   ├── assets/
│   ├── components/
│   ├── views/
│   ├── App.vue
│   ├── main.js
├── index.html
├── package.json
├── vue.config.js
└── README.md

Vue CLI 配置

Vue CLI 的配置文件 vue.config.js 允许你进行各种自定义配置。以下是一个简单的配置示例:

module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'assets',
  devServer: {
    port: 8080,
  },
};

在这个配置中,我们设置了应用的公共路径、输出目录、静态资源目录,以及开发服务器端口。

深入比较 Vue CLI 和 Vite

开发体验

        Vue CLI 在开发模式下使用 Webpack 进行模块打包,这会导致启动时间较长,尤其是在大型项目中。尽管 Vue CLI 提供了热模块替换(HMR),但在处理大量文件时,HMR 的性能可能不如 Vite。

        Vite 则利用了现代浏览器的原生 ES 模块支持,避免了打包过程,从而实现了极快的开发服务器启动时间和即时热更新。这种开发体验的提升对于开发者来说是非常显著的。

构建速度

        在生产环境中,Vue CLI 使用 Webpack 进行构建,这通常需要较长的时间,尤其是在大型项目中。Webpack 的构建过程包括代码分割、压缩、Tree-shaking 等,虽然功能强大,但速度相对较慢。

        Vite 在生产环境中使用 Rollup 进行构建,Rollup 以高效和快速著称。Vite 的生产构建速度通常比 Vue CLI 快,尤其是在大型项目中。

插件生态

        Vue CLI 拥有丰富的插件生态系统,提供了大量的官方和社区插件,可以满足各种开发需求。Vue CLI 的插件系统基于 Webpack,因此可以集成各种 Webpack 插件。

        Vite 也有一个不断增长的插件生态系统,支持 Vue、React、Svelte 等多种框架。Vite 的插件系统设计得非常灵活,允许开发者根据需要扩展构建过程。

代码示例

Vue CLI 项目

# 使用 Vue CLI 创建项目
vue create my-vue-cli-app

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

# 启动开发服务器
npm run serve

Vite 项目

# 使用 Vite 创建项目
npm init vite@latest my-vue-app --template vue

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

# 安装依赖
npm install

# 启动开发服务器
npm run dev

Vue CLI 配置文件

// vue.config.js
module.exports = {
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'assets',
  devServer: {
    port: 8080,
  },
};

 Vite 配置文件

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

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': '/src',
    },
  },
  server: {
    port: 3000,
  },
});

生产构建

Vue CLI 生产构建

# 使用 Vue CLI 进行生产构建
npm run build

Vite 生产构建 

# 使用 Vite 进行生产构建
npm run build

热模块替换(HMR)

Vue CLI HMR

Vue CLI 使用 Webpack 的 HMR 机制,虽然功能强大,但在处理大量文件时可能会出现延迟

// src/main.js
if (module.hot) {
  module.hot.accept();
}

Vite HMR

Vite 的 HMR 几乎是即时的,因为它仅重新加载发生变化的模块,而不需要重新打包整个应用。

// src/main.js
// Vite 的 HMR 是自动处理的,无需额外配置

性能对比

启动时间

  • Vue CLI:通常需要几秒钟到几十秒,取决于项目规模。
  • Vite:通常只需几百毫秒,显著快于 Vue CLI。

构建时间

  • Vue CLI:通常需要几十秒到几分钟,取决于项目规模。
  • Vite:通常比 Vue CLI 快,尤其是在大型项目中。

总结

        Vite 和 Vue CLI 都是优秀的前端构建工具,但它们在设计和使用场景上有所不同。Vite 利用现代浏览器的原生 ES 模块支持,提供了极快的开发体验,尤其适合需要快速迭代和热更新的小型到中型项目。Vue CLI 则更适合需要复杂构建流程和丰富插件生态的大型项目。

        对于新项目,特别是小型到中型项目,强烈推荐使用 Vite,以获得更好的开发体验和性能提升。对于大型项目,特别是那些已经使用 Vue CLI 且依赖于其丰富插件生态的项目,继续使用 Vue CLI 可能是更合适的选择。

 

 

使用ViteVue CLI快速搭建Vue3脚手架的步骤大致如下: 1. 安装依赖:首先确保已安装Node.js和npm,然后在命令行中全局安装ViteVue CLI: ``` npm install -g create-vite vue@next ``` 2. 创建项目:运行`create-vite`命令创建一个新的Vite项目,并指定项目名称: ``` npx create-vite my-vue3-app ``` 3. 进入项目目录:项目创建完成后,进入新生成的目录: ``` cd my-vue3-app ``` 4. 初始化Vue应用:使用Vue CLI初始化Vue3应用程序,这会自动配置Vite的构建系统: ``` vue add @vue/cli-plugin-vuetify (如果需要添加Vuetify组件库) vue add @vue/cli-service-preset-esbuild (选择适合的构建工具) ``` 5. 配置Vite:编辑`vite.config.js`文件,进一步定制Vite的设置。 6. 开发和启动:在项目根目录运行`npm run serve`或`yarn serve`启动开发服务器,然后访问`http://localhost:3000`查看应用。 Vue3相对于Vue2的主要区别包括: 1. **Composition API**:Vue3引入了更简洁、更直观的组件组织方式——Composition API,取代了options-based API,使得状态管理和组件复用更为方便。 2. **TypeScript支持**:Vue3原生集成了TypeScript支持,提供了更强的类型检查和更好的开发者体验。 3. **Ref 和 RefValue vs. $data**:Vue3使用`ref`代替 `$data`来管理组件内部数据,提供更好的响应式特性。 4. **模板语法更新**:例如不再推荐使用`v-on`绑定事件,而是推荐直接使用`on`属性。 5. **默认严格模式**:Vue3在默认情况下开启严格模式,提高了对代码质量的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值