前端构建工具|vite快速入门

news2024/9/22 9:51:04

认识vite

在这里插入图片描述

vite组成部分

Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:

  • 一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。
  • 一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。

vite主要功能

以下是 Vite 的主要功能总结:

  1. 快速开发服务器
  • 即时启动:利用原生 ES 模块,Vite 可以在几毫秒内启动开发服务器,而无需等待整个项目打包。
  • 热模块替换 (HMR):通过 HMR,可以在开发过程中即时更新模块,无需刷新页面,提高开发效率。
  1. 轻量级打包
  • 现代浏览器支持:Vite 主要面向现代浏览器,利用它们对 ES 模块的支持,减少了传统打包工具的复杂性。
  • 优化依赖预构建:通过预构建依赖项来提高性能,Vite 使用 esbuild 进行快速预构建,显著缩短冷启动时间。
  1. 丰富的插件系统
  • 插件扩展:基于 Rollup 的插件 API,Vite 的插件系统允许开发者轻松扩展和定制构建流程。
  • 官方插件:提供了一系列官方插件,如 Vue、React、TypeScript 等,简化框架集成。
  1. 构建优化
  • 按需加载:Vite 支持动态导入和按需加载,优化生产环境中的资源加载。
  • Tree-shaking:移除未使用的代码,减少打包后的文件体积。
  • 代码分割:自动进行代码分割,将代码分成多个小块,提升加载性能。
  1. 配置灵活
  • 简单配置:通过 vite.config.js 文件进行配置,默认配置开箱即用,适合大多数项目。
  • 自定义配置:灵活的配置选项允许开发者根据项目需求自定义构建和开发环境。
  1. 支持多种前端框架
  • Vue:通过官方插件支持 Vue 3,并且支持 Vue 2。
  • React:通过官方插件支持 React 和 JSX/TSX。
  • Svelte:通过社区插件支持 Svelte。
  1. 快速构建工具
  • esbuild:使用 esbuild 进行依赖预构建,极大提高了速度。
  • Rollup:生产构建使用 Rollup 打包,确保生成高质量的代码。
  1. 集成工具
  • CSS 支持:内置支持 PostCSS,允许使用现代 CSS 特性和插件。
  • 静态资源处理:支持导入各种静态资源(如图片、字体等),并自动进行优化和打包。
  • TypeScript 支持:通过插件支持 TypeScript,无需额外配置。
  1. 开发环境增强
  • 模块联邦:支持模块联邦,允许在多个项目之间共享代码。
  • 环境变量:支持 .env 文件定义环境变量,方便管理不同环境下的配置。

基础使用

1. 安装 Vite

安装 Node.js

首先,需要确保系统已经安装了 Node.js。可以从 Node.js 官网 下载并安装最新的 LTS 版本。

创建 Vite 项目

可以使用 npm、Yarn 或 pnpm 来创建 Vite 项目。以下是使用 npm 的命令:

npm create vite@latest my-vite-app
cd my-vite-app  # 然后按照提示操作即可
npm install

上面的命令创建了一个新的 Vite 项目并安装了所需的依赖项。
还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个 Vite + Vue 项目,运行:

# npm 6.x
npm create vite@latest my-vue-app --template vue

# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue

# yarn
yarn create vite my-vue-app --template vue

# pnpm
pnpm create vite my-vue-app --template vue

更多模板: 社区维护模板

2. 项目结构

一个典型的 Vite 项目包含以下目录结构:

my-vite-app/
├── index.html
├── package.json
├── public/
│   └── favicon.ico
└── src/
    ├── assets/
    ├── components/
    ├── App.vue
    ├── main.js
    └── styles/
  • index.html:入口 HTML 文件。
  • package.json:项目的配置信息和依赖项。
  • public/:存放静态资源的目录。
  • src/:主要的源码目录。

3. 配置 Vite

Vite 的配置文件是 vite.config.js。这是一个基本的配置文件示例:

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

export default defineConfig({
  plugins: [vue()],
  server: {
    port: 3000, // 开发服务器端口
  },
  build: {
    outDir: 'dist', // 构建输出目录
  },
})

在安装了 Vite 的项目中,可以在 npm scripts 中使用 vite 可执行文件,或者直接使用 npx vite 运行它。下面是通过脚手架创建的 Vite 项目中默认的 npm scripts:

{
  "scripts": {
    "dev": "vite", // 启动开发服务器,别名:`vite dev``vite serve`
    "build": "vite build", // 为生产环境构建产物
    "preview": "vite preview" // 本地预览生产构建产物
  }
}

4. 启动开发服务器

在项目目录中运行以下命令启动开发服务器:

npm run dev

这将启动 Vite 开发服务器,并在浏览器中自动打开项目。

5. 构建生产版本

要构建生产版本,可以运行以下命令:

npm run build

这将生成生产环境的静态文件,并将它们输出到 dist 目录中。

6. 示例代码

以下是一个简单的 Vue 组件示例:

src/App.vue
<template>
  <div id="app">
    <h1>Hello Vite + Vue!</h1>
  </div>
</template>

<script>
  export default {
    name: 'App',
  }
</script>

<style scoped>
  #app {
    font-family: Avenir, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-align: center;
    color: #2c3e50;
    margin-top: 60px;
  }
</style>
src/main.js
import { createApp } from 'vue'
import App from './App.vue'
import './styles.css'

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

7. 配置更多功能

Vite 支持多种插件,可以根据需要配置更多功能。例如,可以添加 TypeScript 支持、CSS 预处理器等。

添加 TypeScript 支持
npm install typescript

然后将 src/main.js 重命名为 src/main.ts,并更新相应的代码。

其他资源

  • Vite 官方文档
  • Vite GitHub 仓库

通过以上步骤,可以快速上手 Vite 并开始开发现代 Web 应用。如果有更多需求,可以查阅 Vite 的官方文档,了解更多高级功能和配置选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DERPNSTINK: 1-打靶渗透【附代码】(权限提升)

DerpNStink 靶机下载地址&#xff1a; https://www.vulnhub.com/entry/derpnstink-1,221/#downloadhttps://www.vulnhub.com/entry/derpnstink-1,221/#download 1. 主机发现端口扫描目录扫描操作系统等信息收集 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27…

Rabbit高级特性 - 消息重试机制(两种实现)

文章目录 消息重试机制概述实现方式一&#xff1a;基于消息手动确认机制&#xff0c;返回 nack 实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 实现方式二&#xff1a;基于重试配置实现配置文件交换机、队列、绑定生产者接口消费者演示和结论 消息重试机制 概述 …

对深度学习神经网络做了小改进,效果提升明显,可以发论文吗?

小改了深度学习神经网络某一层&#xff0c;效果提升显著&#xff0c;可以发顶会吗&#xff1f; 结论就是&#xff0c;当然可以发&#xff0c;只是能不能发出高质量论文&#xff0c;中稿顶会&#xff0c;还得看你这个小改进的具体情况还有你讲故事的能力。 先说改进的具体情况…

国家统计局中国主要城市面板数据(1990-2023年)

数据说明&#xff1a;数据来源于国家统计局&#xff0c;指标包含&#xff1a;城市、年份、第三产业增加值、第一产业增加值 地区生产总值、第二产业增加值、年末户籍人口、城镇非私营单位在岗职工平均工资 房地产开发投资额、房地产开发住宅投资额、房地产开发办公楼投资额、房…

什么是股指期权与股指期货的套利策略?

沪深300股指期权和沪深300股指期货就像是孪生兄弟&#xff0c;它们不仅到期时间一样&#xff0c;结算价格也一样&#xff0c;而且都是现金结算。这意味着&#xff0c;如果你用期权的方式“造”出一个期货来&#xff0c;跟市场上真实交易的期货&#xff0c;在到期那天&#xff0…

Eclipse 首选项(Preferences)

设置首选项 该对话框可通过框架管理但是其他插件可以设置其他页面来管理首选项的配置。 我们可以通过 Window 菜单选择 Preferences 菜单项来开启该对话框。 首选项页面有多个分类组成。你可以在左侧菜单中展开各个节点来查看首选项的配置。 左上角的输入框可以快速查找首选…

#子传父父传子props和emits #封装的table #vue3

#子传父&父传子props和emits #封装的table #vue3 父组件&#xff1a;emits defineEmits props 子组件&#xff1a; 子组件 <template><el-table v-bind"$attrs" ref"innerTableRef" v-loading"loading" border :data"tabl…

鸿蒙HarmonyOS开发:如何灵活运用动画效果提升用户体验

文章目录 一、动画概述1、动画的目的 二、显式动画 (animateTo)1、接口2、参数3、AnimateParam对象说明4、示例5、效果 三、属性动画 (animation)1、接口2、参数3、AnimateParam对象说明4、系统可动画属性4、示例5、效果 一、动画概述 动画的原理是在一个时间段内&#xff0c;…

QT使用ui文件创建窗口

目录 带ui文件 添加状态栏 资源文件的使用 添加文件资源 使用文件资源 带ui文件 编辑 添加状态栏 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);// 添加状态栏ui->statusbar->addWidget(new QLab…

codeforces查看题解

文章目录 1. 步骤一&#xff1a;右键单击箭头指向位置&#xff0c;根据提示打开链接2. 步骤二&#xff1a;左键单击箭头指向位置3. 结果&#xff1a;红线上方是参考代码&#xff0c;下方是测试样例4. 补充&#xff1a;① 右边这个方框可以筛选想要查看代码的状态(Accepted、Wro…

AI在医学领域:残差扩散模型预测特发性肺纤维化 (IPF)

关键词&#xff1a; IPF 进展预测、残差扩散模型、临床信息 特发性肺纤维化&#xff08;Idiopathic Pulmonary Fibrosis&#xff0c;IPF&#xff09;是一种严重且不可逆的肺部疾病&#xff0c;它会导致肺部组织出现瘢痕和增厚&#xff0c;从而引起呼吸困难。。及时对IPF进行治…

Unity入门4——常用接口

C#中常用类和接口 DateTime&#xff1a;表示某个时刻 DateTime.Now&#xff1a;拿到系统当前时间DtaTime.TimeOfDay&#xff1a;获取此实例当天的时间 Quaternion&#xff1a;用来旋转&#xff0c;采用四元数&#xff0c;由w&#xff08;实部&#xff09;和x,y,z&#xff08;虚…

ChinaJoy 2024: 维塔士携自研游戏亮相,探讨数据驱动游戏开发

2024年7月30日,上海——全球领先的视频游戏开发公司维塔士精彩亮相第二十一届中国国际数码互动娱乐展览会(ChinaJoy),并首次公开自研游戏《唐传奇:琵琶行》DEMO试玩。在展会首日举办的2024中国游戏开发者大会(CGDC)上,来自维塔士西安工作室的执行制作人熊鹏昱受邀发表题为《维塔…

springboot的拦截器,监听器,过滤器,servlet的使用(三大组件)

目录 1. 拦截器1.1 简介1.2 使用 2. 监听器2.1 简介2.2 使用 3. 过滤器3.1 简介3.2 使用 4. servlet4.1 简介4.2 使用 5. 例子6. 心得 1. 拦截器 1.1 简介 Spring Boot 拦截器&#xff08;Interceptor&#xff09;是Spring MVC中用于在请求处理流程中执行某些操作的组件。它们…

Open3D 三维重建-Alpha Shapes (α-形状)

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.1.1函数 2.1.2参数详解 2.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新…

08-PCB工程文件的创建

1.创建工程文件 2.创建原理图库 3.创建PCB元件库 4.创建原理图 5.创建PCB 6.改名&#xff0c;保持和项目名一致 最后save。

uniapp获取swiper中子组件的内容高度

swiper有默认高度,如果不单独设置一个具体高度&#xff0c;swiper后面的内容将不会展示 这里展示的例子是: swiper中放有一个子组件,想要完整展示子组件的内容&#xff0c;swiper就需要获取到子组件的内容高度并设置 <!-- 注意: 这里的单位是 px,不是rpx --><swiper…

【STM32】IO口取反 | 寄存器方式 | 异或运算符 | 原理

目录 STM32 IO口取反 | 寄存器方式 | 异或运算符 | 原理1. 引言2. GPIO基础知识2.1 GPIO概述2.2 STM32的GPIO架构2.3 GPIO寄存器简介 3. GPIO引脚取反原理3.1 寄存器操作实现取反3.2 异或运算符的应用 4. 示例代码4.1 基础示例&#xff1a;LED闪烁4.2 应用实例&#xff1a;继电…

大数据面试SQL(三):每分钟在线直播人数

文章目录 每分钟在线直播人数 一、题目 二、分析 三、SQL实战 四、样例数据参考 每分钟在线直播人数 一、题目 有如下数据记录直播平台主播上播及下播时间&#xff0c;根据该数据计算出平台每分钟的在线直播人数。 这里用主播名称做统计&#xff0c;前提是主播名称唯一…

【初阶数据结构题目】16.用队列实现栈

用队列实现栈 点击链接答题 思路&#xff1a; 出栈&#xff1a;找不为空的队列&#xff0c;将size-1个数据导入到另一个队列中。 入栈&#xff1a;往不为空队列里面插入数据 取栈顶元素&#xff1a; 例如&#xff1a; 两个队列&#xff1a; Q1&#xff1a;1 2 3Q2&#xff1a;…