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

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.mrgr.cn/news/35460.html

相关文章:

  • golang将word、excel转换为pdf
  • mmsegmentation: 安装 并使用自定义数据集进行训练 ·1
  • Django 2024全栈开发指南(二):Django项目配置详解
  • 通过Python 调整Excel行高、列宽
  • 计算机低能儿从0刷leetcode | 36.有效的数独
  • 内网对抗-信息收集篇SPN扫描DC定位角色区域定性服务探针安全防护凭据获取
  • rmdir :删除空文件夹
  • Stable Diffusion绘画 | XYZ Plot:让对比一目了然
  • 优青博导团队指导-组蛋白甲基化修饰、实验设计、实验结果分析、测序分析及SCI论文辅助,精准高效,为农医学科研保驾护航!
  • 前端——阿里图标的使用
  • USB 电缆中的信号线 DP、DM 的缩写由来
  • 8086的指令系统
  • 物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总
  • ESXI主机加入VCENTER现有集群提示出现常规性错误
  • Python【修炼1】
  • LOGO设计新革命:5款AI工具让你秒变设计大师(必藏)
  • Java高级Day50-连接池
  • 深入解析:Kubernetes 如何使用 etcd 作为配置中心和注册中心
  • PHP 递归遍历目录
  • JUC并发编程_四大函数式接口和 Stream 流式计算
  • JetBrains系列产品无限重置免费试用方法
  • 35岁程序员转行大模型岗位:详细学习路线,从零基础到精通2024最新
  • input文本框随其中内容而变化长
  • 【React】(推荐项目)使用 React、Socket.io、Nodejs、Redux-Toolkit、MongoDB 构建聊天应用程序 (2024)
  • QT Creator cmake 自定义项目结构, 编译输出目录指定
  • 用canvas画一个验证码