当前位置: 首页 > news >正文

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

认识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 的官方文档,了解更多高级功能和配置选项。

相关文章:

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

认识vite vite组成部分 Vite是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。它主要由两部分组成&#xff1a; 一个开发服务器&#xff0c;它基于 原生 ES 模块 提供了 丰富的内建功能&#xff0c;如速度快到惊人的 模块热更新&#xff08;HMR&#xff09;。一…...

拯救PyCharm:击退IDE内存泄漏的策略

拯救PyCharm&#xff1a;击退IDE内存泄漏的策略 PyCharm&#xff0c;作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;在处理大型项目或长时间开发过程中&#xff0c;可能会遇到内存泄漏的问题&#xff0c;导致IDE运行缓慢甚至崩溃。本文将提供一系列解…...

在vue3的开发环境中为什么使用vite而不是用webpack

1、vite在开发阶段没有打包过程&#xff0c;直接启动一个服务器 2、请求一个模块到开发服务器 3、开发服务器编译模块&#xff0c;根据页面用所需要的依赖去加载文件 4、加载完成后&#xff0c;开发服务器把编译的结果返回给页面 这使得提高了我们在开发阶段运行的效率 vite是…...

mybatis结合generator进行分页插件PluginAdapter开发

mybatis结合generator生成的代码没有分页的功能&#xff0c;可以尝试自己继承分页插件PluginAdapter&#xff0c;进行开发&#xff0c;实现自己的分页插件这样generator生产的代码 带分页功能了。 MyBatis MySQL自动生成带分页插件 继承PluginAdapter类&#xff0c;实现相关方…...

面试:ArrayList和LinkedList

ArrayList和LinkedList是什么&#xff1f; ArrayList&#xff1a; ArrayList是Java集合框架中的一个类&#xff0c;它实现了List接口&#xff0c;底层基于数组实现。ArrayList的特点是支持动态数组&#xff0c;可以自动扩容&#xff0c;适合顺序访问和随机访问。LinkedList&am…...

【uniapp】uniapp+vue2微信小程序实现分享功能

uniappvue2做的微信小程序实现分享功能 问题描述 uniappvue2做的微信小程序&#xff0c;发布以后点击右上角三个点&#xff0c;分享小程序的时候&#xff0c;转发和分享按钮都是灰色 解决方案 转发、分享、复制链接这几个功能需要自己来手动写方法&#xff0c;考虑到每个页…...

WEB渗透Web突破篇-目录爆破

开源 工具名称下载地址工具描述cansinahttps://github.com/deibit/cansina网站的敏感目录发掘工具Cewlcewl | Kali Linux Tools你可以给它的爬虫指定URL地址和爬取深度&#xff0c;接下来Cewl会给你返回一个字典文件dirsearchhttps://github.com/maurosoria/dirsearch目录扫描…...

Windows设备文件同步平台

使用咨询: 扫码添加QQ 永久免费: Gitee下载最新版本 使用说明: CSDN查看使用说明 功能: 定时(全量采集or增量采集) SCADA,MES等系统采集工控机,办公电脑文件. 优势1: 开箱即用. 解压直接运行.插件集成下载. 优势2: 批管理设备. 配置均在后台配置管理. 优势3: 无人值守 采集端…...

用九方智投学习机,学会应对回撤风险

&#xff08;九方智投属于九方智投控股有限公司&#xff08;9636.HK&#xff09;旗下品牌&#xff09;      近期国内海风项目密集落地&#xff0c;行业景气度提升。2023年下半年以来&#xff0c;各省加快建设“十四五”规划&#xff0c;我国海风建设重新迈入快车道&#x…...

maven打包加入本地jar包

在使用maven打包的过程中&#xff0c;有时候我们需要添加一些本地的jar包&#xff0c;并将其打到jar包的lib中。 首先将需要本地的jar包&#xff0c;放到项目的的src/resources/lib下面。 然后在对应的项目的pom中加入一下依赖&#xff1a; <dependency><groupId>…...

从TiDB迁移到OceanBase的实践分享

本文来自OceanBase热心用户的分享 近期&#xff0c;我们计划将业务数据库从TiDB迁移到OceanBase&#xff0c;但面临的一个主要挑战是如何更平滑的完成这一迁移过程。经过研究&#xff0c;了解到OceanBase提供的OMS数据迁移工具能够支持从TiDB到OceanBase的迁移&#xff0c;并且…...

DL00765-光伏故障检测高分辨率无人机热红外图像细粒度含数据集4000+张

光伏发电作为清洁能源的重要组成部分&#xff0c;近年来得到了广泛应用。然而&#xff0c;随着光伏电站规模的扩大&#xff0c;光伏组件在运行过程中可能会出现各种故障&#xff0c;如热斑、遮挡、接线盒故障等。这些故障不仅会影响光伏电站的发电效率&#xff0c;还可能导致更…...

CICD流水线

一、CICD流水线简介 CICD概念 CI/CD流水线是现代软件开发的一个核心概念&#xff0c;它涉及自动化和管理软件从开发到部署的整个生命周期 概念定义 具体有三点&#xff1a;持续集成、持续交付、持续部署 流水线组成为&#xff1a;代码提交、测试、构建、部署、结果通知 二…...

Sass/Scss基础

安装sass npm install -g sass Sass/Scss释义 ASS版本3.0之前的后缀名为.sass&#xff0c;而版本3.0之后的后缀名.scss。 Sass (Syntactically Awesome Stylesheets) 是一个最初由 Hampton Catlin 设计并由 Natalie Weizenbaum 开发的层叠样式表语言。 Sass 是一个由buby语言编…...

【sx sb sz】Centos/Linux sx、sb、sz命令详细介绍

简介 系统版本&#xff1a;Centos7.6 软件版本&#xff1a;lrzsz 0.12.20 sx、sb、sz命令属于lrzsz程序的内容&#xff0c;是使用纠错协议&#xff08;ZMODEM、YMODEM、XMODEM&#xff09;通过拨号串行端口将一个或多个文件发送到在 PC-DOS、CP/M、Unix、VMS 及其他操作系统下运…...

【网络层】IP报文解析和网段划分

文章目录 网络层的作用IP协议协议报头格式网段划分DHCPCIDR划分方案 IP地址的数量限制私有IP地址和公网IP地址LAN和WAN 路由 网络层的作用 前面学习了应用层和传输层&#xff0c;应用层的作用是为用户和应用程序提供网络服务&#xff0c;传输层的作用是提供端口到端口的通信服…...

[GXYCTF2019]禁止套娃1

打开题目 进行常规的检测漏洞&#xff0c;扫描目录发现存在.git文件夹下的文件存在 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])) { if (!preg_match(/data:\/\/|filter:\/\/|php:\/\/|phar:\/\…...

人工智能时代,数字化工厂如何改革?提升竞争力?

在人工智能时代&#xff0c;数字化工厂通过数据驱动的决策、智能制造、柔性生产、物联网整合以及人机协作&#xff0c;实现生产效率和产品质量的全面提升&#xff0c;并不断创新以保持竞争力。 --题记 在人工智能时代&#xff0c;数字化工厂的改革…...

气膜建筑的抗风与防火性能:保障仓储的安全—轻空间

气膜建筑以其独特的结构和材料优势&#xff0c;为仓储设施提供了可靠的安全保障。在应对自然灾害特别是强风和火灾时&#xff0c;气膜建筑展示了优异的抗风和防火性能。轻空间将详细探讨这些性能及其在实际应用中的表现。 气膜建筑的抗风能力源于其特殊的结构设计和高性能材料。…...

【秋招笔试】2024-08-07-YT游戏(研发岗)-三语言题解(CPP/Python/Java)

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的题目比较典,…...

OpenStego:用隐写术实现信息隐蔽传输与版权保护的开源方案

OpenStego&#xff1a;用隐写术实现信息隐蔽传输与版权保护的开源方案 【免费下载链接】openstego OpenStego is a steganography application that provides two functionalities: a) Data Hiding: It can hide any data within an image file. b) Watermarking: Watermarking…...

3种方法实现Figma设计到JSON数据的无缝转换:从痛点到价值的完整指南

3种方法实现Figma设计到JSON数据的无缝转换&#xff1a;从痛点到价值的完整指南 【免费下载链接】figma-to-json 项目地址: https://gitcode.com/gh_mirrors/fi/figma-to-json Figma-to-json是一个开源工具集&#xff0c;专注于实现Figma设计文件与JSON格式的双向转换&…...

让开发流程更高效:为 Visual Studio 订阅用户解锁 Syncfusion杉

一、什么是requests&#xff1f; requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你&#xff1a; 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景&#xff1a; …...

EF Core 10向量搜索扩展架构设计图泄露事件(内部PPT第7页已证实):这3个设计决策将重写.NET AI应用开发范式

第一章&#xff1a;EF Core 10向量搜索扩展的演进背景与战略定位随着AI应用在企业级系统中加速落地&#xff0c;传统关系型数据库的标量查询能力已难以满足语义检索、相似性匹配等新兴场景需求。EF Core 10首次将向量搜索能力深度融入ORM层&#xff0c;标志着微软在数据访问技术…...

Qt程序在麒麟系统发布:除了.desktop文件,你还需要知道的3种打包方案(含AppImage实战)

Qt程序在麒麟系统发布&#xff1a;除了.desktop文件&#xff0c;你还需要知道的3种打包方案&#xff08;含AppImage实战&#xff09; 在国产操作系统生态快速发展的今天&#xff0c;银河麒麟&#xff08;Kylin&#xff09;系统作为主流国产OS之一&#xff0c;正吸引着越来越多…...

微信协议的基本原理和实践性

微信协议相关中文文献关于微信协议的研究&#xff0c;主要集中在通信协议、安全分析、隐私保护等方面。以下是一些相关的中文文献和研究方向&#xff1a;微信通信协议分析微信使用自定义的二进制协议进行通信&#xff0c;基于TCP/IP协议栈&#xff0c;采用PB&#xff08;Protoc…...

告别复制粘贴!PDF-Parser-1.0实战:3步提取论文/报告/合同所有内容

告别复制粘贴&#xff01;PDF-Parser-1.0实战&#xff1a;3步提取论文/报告/合同所有内容 1. 为什么你需要PDF-Parser-1.0&#xff1f; 还在为PDF文档中的内容提取而烦恼吗&#xff1f;无论是学术论文中的复杂公式&#xff0c;财务报告里的精密表格&#xff0c;还是法律合同中…...

7-Zip ZS高效压缩算法深度解析:多格式压缩实战配置指南

7-Zip ZS高效压缩算法深度解析&#xff1a;多格式压缩实战配置指南 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 7-Zip ZS&#xff08;7-Zip-zstd…...

YOLO-Master 与 YOLO 开始奖

AI Agent 时代的沙箱需求 从 Copilot 到 Agent&#xff1a;执行能力的质变 在生成式 AI 的早期阶段&#xff0c;应用主要以“Copilot”形式存在&#xff0c;AI 仅作为辅助生成建议。然而&#xff0c;随着 AutoGPT、BabyAGI 以及 OpenAI Code Interpreter&#xff08;现为 Advan…...

周鸿祎西安交大演讲:AI时代青年的机遇与挑战

【赓续“西迁精神”&#xff0c;驾驭AI重塑竞争力】近日&#xff0c;西安交通大学迎来建校130周年暨西迁70周年纪念大会&#xff0c;360集团创始人、西安交大杰出校友周鸿祎重返母校发表主旨演讲。他勉励青年学子赓续“西迁精神”&#xff0c;坚守“解决真问题”的底色。在人工…...