Vue3——Vite篇

Vite是一款由Vue.js的作者尤雨溪开发的前端构建工具,专为现代前端项目而设计。它以其快速的冷启动、按需编译和热更新能力而受到广泛关注。以下是对Vite的详细解析:

一、核心特性

  1. 快速启动
    • Vite利用浏览器原生支持的ES模块(ESM),在开发环境中无需打包即可启动服务,极大提升了项目启动速度。这是因为Vite只启动一台静态页面的服务器,根据客户端的请求加载不同的模块处理,实现按需加载,避免了Webpack那样一开始就打包整个项目的做法。
  2. 按需编译
    • 在开发模式下,Vite只编译你正在查看的模块,大大加快了编辑-刷新的循环。这意味着只有当文件发生变化时,相应的模块才会被重新编译,减少了不必要的编译时间。
  3. 热模块替换(HMR)
    • Vite提供了非常快速的HMR体验,当某个模块内容改变时,只让浏览器去重新请求该模块即可,而不是像Webpack那样重新编译该模块的所有依赖。这几乎做到了无缝的实时更新,提升了开发效率。
  4. 配置简单
    • Vite的配置文件vite.config.js相较于Webpack更为简洁,降低了入门门槛。同时,Vite支持多种框架(如Vue、React、Preact、Svelte等)和插件扩展,使得开发者可以轻松适配不同项目和需求。
  5. 兼容性良好
    • Vite通过插件支持,如@vitejs/plugin-legacy,可以自动为不支持原生ESM的浏览器生成传统版本的chunk及相应的polyfill,确保了良好的兼容性。

二、配置文件

Vite的配置文件vite.config.js是Vite项目中的核心配置文件,通过该文件可以对项目的开发服务器、插件系统、打包配置等进行自定义。常见的配置项包括:

  • root:指定项目的根目录。
  • base:指定在开发或生产环境中,应用的公共基础路径。
  • server:自定义Vite开发服务器的行为,包括端口、代理设置等。
  • build:自定义项目的打包行为,如输出目录、代码压缩等。
  • plugins:配置Vite插件,可以是自定义插件或官方/社区提供的插件。

三、使用场景

Vite非常适合用于现代前端项目的开发,特别是在需要快速启动、热更新和良好开发体验的场景下。例如,在开发Vue、React等单页面应用(SPA)时,Vite能够显著提升开发效率,降低开发成本。

四、优缺点

  • 优点
    • 快速启动和按需编译,提升了开发效率。
    • 支持热模块替换(HMR),实现了无缝的实时更新。
    • 配置简单,降低了入门门槛。
    • 兼容性良好,支持多种框架和插件扩展。
  • 缺点
    • 由于采用unbundle机制,首屏加载时可能会有一定的性能损耗,不过Vite通过缓存和预构建等方式进行了优化。
    • 不支持CommonJS模块,仅支持ES Module。

五、总结

Vite作为一款现代前端构建工具,以其快速的启动速度、按需编译和热更新能力而受到广泛关注。通过简洁的配置和强大的插件系统,Vite为开发者提供了高效、灵活的开发体验。同时,Vite也具备良好的兼容性和可扩展性,能够满足不同项目和需求的要求。

--------------------------------------------------------------------------------------------------------

Vite是一款由尤雨溪(Vue.js 作者)开发的现代前端构建工具,专为现代前端项目而设计。它提供了极速的开发服务器和高效的构建机制,通过简单直观的配置文件,开发者可以轻松定制开发环境和构建流程。以下是Vite的详细介绍及常见配置项。

Vite简介

  • 极速启动:Vite 利用浏览器原生支持的 ES 模块,在开发环境中无需打包即可启动服务,极大提升了项目启动速度。
  • 模块热更新(HMR):Vite 支持基于原生 ESM 的模块热替换,实现了快速、无感知的开发体验。
  • 高效构建:Vite 使用 Rollup 进行生产构建,支持按需加载和代码分割,提供了优化的生产环境构建。

Vite 配置文件(vite.config.js)

Vite 的核心配置文件是 vite.config.js,位于项目根目录。这个文件使用 CommonJS 格式或 ES 模块格式导出一个配置对象,用于定义项目的开发服务器、插件系统、打包配置等。

常见配置项

  1. root
    • 作用:指定项目的根目录。
    • 默认值:当前工作目录。
    • 示例root: './src', 将根目录设置为 src 文件夹。
  2. base
    • 作用:指定在开发或生产环境中,应用的公共基础路径。
    • 默认值'/'
    • 示例base: '/my-app/', 应用将被部署到 /my-app/ 子路径。
  3. server
    • 作用:自定义 Vite 开发服务器的行为。
    • 子配置项
      • port:指定开发服务器的端口,默认值为 3000
      • proxy:配置开发服务器的代理设置,解决跨域问题。
      • open:是否在服务器启动时自动打开浏览器。
      • https:是否启用 HTTPS。
      • cors:为开发服务器配置 CORS。
server: {  port: 8080,  proxy: {  '/api': {  target: 'http://localhost:5000',  changeOrigin: true,  rewrite: (path) => path.replace(/^\/api/, ''),  },  },  open: true,  https: false,  cors: true,  
},

 build

  • 作用:自定义项目的打包行为。
  • 子配置项
    • outDir:指定生产环境打包文件的输出目录,默认值为 dist
    • minify:代码压缩配置,支持 terser 和 esbuild
    • assetsDir:指定生成静态资源的存放路径。
    • chunkSizeWarningLimit:规定触发警告的 chunk 大小(以 kbs 为单位)。
build: {  outDir: 'build',  minify: 'esbuild',  assetsDir: 'assets',  chunkSizeWarningLimit: 500,  
},

 plugins

  • 作用:配置 Vite 插件,以扩展其功能。
  • 示例:使用 Vue 插件。
import vue from '@vitejs/plugin-vue';  
export default defineConfig({  plugins: [vue()],  
});

resolve

  • 作用:配置模块解析选项。
  • 子配置项
    • alias:路径别名替换。
    • extensions:配置导入时想要省略的扩展名列表。
  • 示例
resolve: {  alias: {  '@': path.resolve(__dirname, 'src'),  'components': path.resolve(__dirname, 'src/components'),  },  extensions: ['.mjs', '.js', '.ts', '.tsx', '.json'],  
},

css

  • 作用:配置 CSS 相关选项。
  • 子配置项
    • preprocessorOptions:配置 CSS 预处理器选项。
    • modules:启用 CSS 模块化。
  • 示例

 

css: {  preprocessorOptions: {  scss: {  additionalData: '@import "@/styles/variables.scss";',  },  },  modules: true,  
},

总结

Vite 通过其简洁而强大的配置文件,提供了灵活的配置选项,帮助开发者快速搭建和优化前端项目。以上介绍了 Vite 的常见配置项,包括项目根目录、公共基础路径、开发服务器配置、构建配置、插件系统、模块解析和 CSS 配置等。开发者可以根据项目需求,自定义这些配置项,以提升项目开发效率和最终产品的性能。

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

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

相关文章

Vue2是什么?有什么用?超详细+通俗易懂版!

Vue2是一种流行的JavaScript前端框架,由尤雨溪(Evan You)开发,并于2014年首次发布。它旨在使用户能够更轻松地构建用户界面,具有一系列显著的特点和优势,使其成为前端开发领域的重要工具。 Vue2的主要特点包…

VMWare虚拟机键盘卡顿

文章目录 环境问题解决办法参考 环境 Windows 11 家庭中文版VMware Workstation 17 ProUbuntu 24.04.1 问题 最近新入手了一台电脑台式机,型号是联想拯救者刃7000K,自带Win11家庭版。主机的CPU是第14代英特尔酷睿i9处理器,异构24核32线程。…

​无文字高德电子地图分享

如果你有对高德的电子地图进行过自定义加载,你应该知道高德的电子地图是有带文字标注的,这里为你分享无文字版高德电子地图。 普通电子地图 打开下面的网址进入水经微图(简称“微图”)网页版。 https://map.wemapgis.com 点击…

力扣题解2207

大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(中等)​: 字符串中最多数目的子序列 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern ,两者都只包…

DataWhale X 南瓜书学习笔记 task03笔记

对数几率回归 使用场景:分类任务。根据广义线性模型,分类任务构建模型的基本思想:找到一个单调可微函数将分类任务的真实标记(值)与线性回归模型的预测值联系起来。 对数几率回归的引入 二分类任务 输出标记&#…

windows下成功运行MicroRTS-Py项目

1.microRTS(java) microRTS是java写的跨平台的小型即时战略模拟器。 Farama-Foundation/MicroRTS: A simple and highly efficient RTS-game-inspired environment for reinforcement learning (github.com)https://github.com/Farama-Foundation/Micr…

828华为云征文|华为云Flexus X实例:极速搭建个人代码仓库GitLab平台

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例使用场景 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 重置密码 2.3 登录服务器 三、Flexus X 实例安装GitLab 3.1 GitLab镜像下载 3.2 GitLab部署…

Arthas mbean(查看 Mbean 的信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.10 mbean(查看 Mbean 的信息)举例1:列出所有 Mbean 的名称:举例2:查看 Mbean 的元信息:举例3:查看 mbean 属性信息:举例4:mbea…

游戏化在电子课程中的作用:提高参与度和学习成果

游戏化,即游戏设计元素在非游戏环境中的应用,已成为电子学习领域的强大工具。通过将积分、徽章、排行榜和挑战等游戏机制整合到教育内容中,电子课程可以变得更具吸引力、激励性和有效性。以下是游戏化如何在转变电子学习中发挥重要作用&#…

基于Vue3组件封装的技巧分享

本文在Vue3的基础上针对一些常见UI组件库组件进行二次封装,旨在追求更好的个性化,更灵活的拓展,提供一些个人的思路见解,如有不妥之处,敬请指出。核心知识点$attrs,$slots 需求 需求背景 日常开发中,我们经…

【React】(推荐项目)使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024)

使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024) 学习使用 React、Socket.io、Node.js、Redux-Toolkit 和 MongoDB 构建响应式实时消息聊天应用程序。这个项目涵盖了从设置到实施的所有内容,提供了宝贵的见解和实用技能。无论您是…

P2568 GCD(GCD求和的常用变化 欧拉函数)

通过/p改变为互质的情况 维护欧拉函数前缀和即可。 GCD - 洛谷 #include<bits/stdc.h> using namespace std; const int N 1e78; vector<int> pri; bool not_prime[N]; long long phi[N]; long long sum[N]; void pre(int n) {phi[1] 1;for (int i 2; i < …

plt常用函数介绍一

目录 前言plt.figure()plt.subplot()plt.subplots()plt.xticks()plt.xlim() 前言 Matplotlib是Python中的一个库&#xff0c;它是数字的-NumPy库的数学扩展。 Pyplot是Matplotlib模块的基于状态的接口。在Pyplot中可以使用各种图&#xff0c;例如线图&#xff0c;轮廓图&#…

关于区块链的安全和隐私

背景 区块链技术在近年来发展迅速&#xff0c;被认为是安全计算的突破&#xff0c;但其安全和隐私问题在不同应用中的部署仍处于争论焦点。 目的 对区块链的安全和隐私进行全面综述&#xff0c;帮助读者深入了解区块链的相关概念、属性、技术和系统。 结构 首先介绍区块链…

AI大模型项目实战v0.2: 结合个人知识库

前言 在AI大模型项目实战v0.1版本中&#xff0c;我们实现了一个最简单的基于纯LLM的问答机器人Tbot。 今天升级到v0.2版本&#xff0c;结合个人知识库。 本系列每个版本&#xff0c;都将提供完整的代码文档&#xff0c;获取方法见文末。 下面开启我们的v0.2版本之旅。 v0.2 Tb…

如何用AI实现自动更新文章?(全自动更新网站)

AI的诞生确实给我们的生活和工作都带来了很大的改变&#xff0c;从我自身来讲&#xff0c;也渐渐习惯了遇到事情先问问AI&#xff0c;不管是翻译、专业性问题、PPT制作、总结写作这些&#xff0c;确实帮我迅速理清了思路&#xff0c;也可以有很多内容的借鉴。 作为一个业余爱好…

力扣 简单 206.反转链表

文章目录 题目介绍题解 题目介绍 题解 法一&#xff1a;双指针 在遍历链表时&#xff0c;将当前节点的 next 改为指向前一个节点。由于节点没有引用其前一个节点&#xff0c;因此必须事先存储其前一个节点。在更改引用之前&#xff0c;还需要存储后一个节点。最后返回新的头引…

鸿蒙OpenHarmony【小型系统基础内核(进程管理任务)】子系统开发

任务 基本概念 从系统的角度看&#xff0c;任务Task是竞争系统资源的最小运行单元。任务可以使用或等待CPU、使用内存空间等系统资源&#xff0c;并独立于其它任务运行。 OpenHarmony 内核中使用一个任务表示一个线程。 OpenHarmony 内核中同优先级进程内的任务统一调度、运…

14.第二阶段x86游戏实战2-C++语言开发环境搭建-VisualStudio2017

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…

复制他人 CSDN 文章到自己的博客

文章目录 0.前言步骤 0.前言 在复制别人文章发布时&#xff0c;记得表明转载哦 步骤 在需要复制的csdn 文章页面&#xff0c;打开浏览器开发者工具&#xff08;F12&#xff09;Ctrl F 查找"article_content"标签头 右键“Copy”->“Copy element”新建一个 tx…