梳理vite构建vue项目可选的配置和组件

梳理vite构建vue项目可选的配置和组件

💡 列举通过vite构建vue3项目时可能会使用到的配置和组件,在搭建项目初期可以提前规划,提高开发效率,后续会不断扩展…

unplugin-vue-router

可以监听views文件夹中的文件变化,自动配置路由信息,目录结构即路由。通常layouts文件会存放项目页面布局组件,例如导航栏、侧边栏、页脚等,可以在router的meta属性中设置页面的布局组件。

vite-plugin-vue-meta-layouts

会根据名称自动为路由配置布局。

vite-plugin-mock

用于模拟接口请求。

vite-plugin-vue-devtools

适用于vite构建的vue3项目的开发工具,支持查看组件状态、性能分析、事件追踪。并且该工具与HMR无缝集成,可以实时更新。

vite-plugin-use-modules

自动引入常用modules,减少频繁手动import工具库,按需加载。缺点是引入是一次性的,加载是按需的,可能会引入不必要的模块,不易追踪,增加调试难度。

vite-plugin-compression

使用gzip对指定资源进行压缩,通常在生产环境使用。

vite-plugin-env-types

自动生成环境变量类型声明,根目录下的 .env 用来对项目进行环境变量配置。

vite-plugin-removelog

生产环境下console的日志会被自动去掉。

vitejs/plugin-react

支持在vue文件中使用tsx组件。

unplugin-auto-import

可自动导入常用模块和Api(按需),也支持第三方库配置自动导入,不用每个页面使用前手动import。

unplugin-vue-components

可自动引入自定义组件和第三方组件,如:element-plus、vant等,在vite配置文件配置即可在vue文件中按需引入使用(如果需要全局配置语言等,还是需要在main.ts 中设置)。

unplugin-vue-markdown

支持在页面渲染markdown,以及在markdown中嵌入vue组件。

Icons preset

图标预设,自动引入图标

https://icones.netlify.app/

https://unocss.dev/presets/icons

WindiCSS、UnoCSS、 Tailwind CSS

Css工具库,通过简单的类名来控制元素的样式,减少书写大量重复CSS代码。

Tailwind CSS的核心思想是实用类优先,每个小样式定义为一个类名,可以通过叠加实现复杂样式,减少样式冲突和冗余。UnoCSS是WindiCSS的精神传承,实现方式跟Tailwind CSS类似,核心思想是按需生成和极致的优化,社区尚在发展。

在构建速度和最终css大小方面,UnoCSS的按需生成机制更加有优势,Tailwind CSS需要开启JIT和purge后才会进行tree-shaking,减少最终Css大小,否则会将所有可能用到的类名都编译。

VueUse

提供一系列基于vue的hooks,开箱即用,例如:窗口大小监听、鼠标位置防抖、设备传感器、网络相关、状态管理等方法。

vue-echarts

为vue定制的echarts封装组件,使得echarts携带了生命周期、响应式以及vue指令。

vue-toastification

全局通用toast通知插件,可以在src目录下所有文件中使用。

vue-dark-switch

切换暗黑模式。

VueRequest

SWR的Vue版本请求库。

SMR是一个轻量级用于数据获取的React Hook库,与普通get请求获取数据相比,具有如下优势:支持自动缓存(可以设置缓存过期时间、缓存大小)、实时数据更新(可以设置更新间隔时间和条件,默认会在网络恢复、网页聚焦、查询条件、达到更新时间或条件触发,也可手动触发)、自动重试(默认3次)、增量式数据更新(更新时优先使用缓存数据,接口请求完成后再更新)、分页与无限滚动、依赖请求加载、全局配置与定制化。

Pinia和VueX状态管理工具

Pinia是Vuex的轻量级替代方案,适用于vue3和composition API,适用于中小型项目。

VueX集中管理全局状态,适用于中大型项目。

npm、yarn、pnpm

包管理器。

NProgress

设置跳转进度条。

vitest

单元测试,与Jest相似。

配置路径别名@

// vite.config.js
import { defineConfig } from 'vite';
import path from 'path';

export default defineConfig({
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      '@components': path.resolve(__dirname, './src/components'),
      '@utils': path.resolve(__dirname, './src/utils'),
      '@assets': path.resolve(__dirname, './src/assets'),
      '@store': path.resolve(__dirname, './src/store'),
    },
  },
});

i18n国际化

vite 插件 👉 @intlify/vite-plugin-vue-i18n 与 vue插件 vue-i18n。

校验和统一风格

由 eslint 提供的代码规范校验,使用 prettier 统一代码风格。

由 husky + lint-staged 提供的 <font style="color:rgb(31, 35, 40);">git commit</font> 时校验。

全局通用axios请求封装

renovate

借助github的renovate定期检查依赖,进行必要的更新。在执行npm run release 时 会自动进行版本更新,并更新 CHANGELOG.md。

dockerfile

配置 dockerfile,可以将node.js、npm等依赖一起打包在Docker容器,确保开发团队环境的一致性,可以环境隔离,避免不同版本依赖工具冲突、跨平台使得项目在不同操作系统上都能运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

密码学(哈希函数)

4.1 Hash函数与数据完整性 数据完整性&#xff1a; 检测传输消息&#xff08;加密或未加密&#xff09;的修改。 密码学Hash函数&#xff1a; 构建某些数据的简短“指纹”&#xff1b;如果数据被篡改&#xff0c;则该指纹&#xff08;以高概率&#xff09;不再有效。Hash函数…

ESP32-S3 42引脚 语音控制模块、设备运转展示 GOOUUU TECH 果云科技S3-N16R8 控制舵机 LED开关 直流电机

最近还是想玩了下esp32&#xff0c;基于原来的开发板&#xff0c;看见佬做了一个语音识别的项目&#xff0c;通过这个语音识别可以控制LED开关和直流电机这些&#xff0c;详情可见视频&#xff08;推荐&#xff09;具体硬件就在下方。 信泰微】ESP32-S3 42引脚 语音控制模块、…

《Qt窗口动画实战:Qt实现呼吸灯效果》

Qt窗口动画实战&#xff1a;Qt实现呼吸灯效果 在嵌入式设备或桌面应用中&#xff0c;呼吸灯效果是一种常见且优雅的UI动画&#xff0c;常用于指示系统状态或吸引用户注意。本文将介绍如何使用Qt动画框架实现平滑的呼吸灯效果。 一、实现原理 利用Qt自带的动画框架来实现&…

数据库测试

TPCH 22条SQL语句分析 - xibuhaohao - 博客园 TPCH模型规范、测试说明及22条语句 - zhjh256 - 博客园 TPC-DS 性能比较&#xff1a;TiDB 与 Impala-PingCAP | 平凯星辰 揭秘Oracle TPC-H性能优化&#xff1a;如何提升数据库查询速度&#xff0c;揭秘实战技巧与挑战 引言 T…

《Kafka 理解: Broker、Topic 和 Partition》

Kafka 核心架构解析:从概念到实践 Kafka 是一个分布式流处理平台,广泛应用于日志收集、实时数据分析和事件驱动架构。本文将从 Kafka 的核心组件、工作原理、实际应用场景等方面进行详细解析,帮助读者深入理解 Kafka 的架构设计及其在大数据领域的重要性。 ​1. Kafka 的背…

Day11,Hot100(贪心算法)

贪心 &#xff08;1&#xff09;121. 买卖股票的最佳时机 第 i 天卖出的最大利润&#xff0c;即在前面最低价的时候买入 class Solution:def maxProfit(self, prices: List[int]) -> int:min_price prices[0]ans 0for price in prices:ans max(ans, price - min_price…

STM32呼吸灯实验手册(TIM定时器)

一、实验目标 使用TIM定时器的PWM模式控制LED亮度实现LED渐亮渐灭的呼吸灯效果掌握HAL库的TIM配置方法 二、硬件准备 开发板&#xff1a;STM32F103C8T6LED模块&#xff1a;LED串联220Ω电阻两组USB-TTL调试器硬件连接 三、软件配置&#xff08;STM32CubeMX&#xff09; 打开…

51页精品PPT | 农产品区块链溯源信息化平台整体解决方案

PPT展示了一个基于区块链技术的农产品溯源信息化平台的整体解决方案。它从建设背景和需求分析出发&#xff0c;强调了农产品质量安全溯源的重要性以及国际国内的相关政策要求&#xff0c;指出了食品安全问题在流通环节中的根源。方案提出了全面感知、责任到人、定期考核和追溯反…

python-leetcode-删除并获得点数

740. 删除并获得点数 - 力扣&#xff08;LeetCode&#xff09; 解法 1&#xff1a;动态规划&#xff08;O(n) 时间&#xff0c;O(n) 空间&#xff09; class Solution:def deleteAndEarn(self, nums: List[int]) -> int:if not nums:return 0# 统计每个数的贡献points Cou…

Grafana服务安装并启动

Grafana服务安装并启动 1、介绍2、下载Grafana3、解压缩文件4、启动Grafana服务5、增加数据源,填写Prometheus访问地址6、增加图表 1、介绍 Grafana是一个开源的可视化系统监控和警报工具包。 2、下载Grafana 介绍&#xff1a;Grafana是一个开源的可视化系统监控和警报工具包…

6. grafana的graph简介

1. Settings功能 2. Visualization功能 &#xff08;可视化的方式&#xff0c;后续会写一些&#xff09; 3. Display 功能&#xff08;显示方面的设置&#xff09; bars 柱状图方式显示 lines&#xff08;不选不会出功能&#xff09; line width 线条的粗细 staircase 会让折…

react18自定义hook实现

概念&#xff1a;自定义 hook 是一种将组件逻辑提取到可复用函数中的方式&#xff0c;它允许你在多个组件中共享相同的状态和行为。自定义 hook 的本质上是一个普通的 JavaScript 函数&#xff0c;它可以使用 React 内部的 hook&#xff08;如 useState、useEffect、useContext…

千峰React:函数组件使用(3)

多组态进行正确记忆 首先看这个代码 import { useState } from reactfunction App() {const [count, setCount] useState(0)const [count2, setCount2] useState(0)const [count3, setCount3] useState(0)const handleClick () > {setCount(count 1)}return (<div&…

xss-labs搭建及学习

搭建 搭建过程与一般的网站搭建差不多 参考资料 当出现这个界面就是成功了 学习 学习资料 xss概念理解&#xff1a;XSS跨站脚本攻击 xss常见标签&#xff1a;XSS常见触发标签 level1-直接打 这里提示payload长度为4查看一下源码 发现get传参name的值test插入了html里头&am…

网络安全审计员

在当今数字化时代&#xff0c;随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显&#xff0c;成为各行各业不容忽视的重要议题。特别是对于企业、政府机构等组织而言&#xff0c;网络安全不仅关乎数据资产的安全&#xff0c;更与组织的声誉、客户信任乃至法律法规的遵从…

安全模块设计:token服务、校验注解(开启token校验、开启签名校验、允许处理API日志)、获取当前用户信息的辅助类

文章目录 引言pom.xmlI 校验注解ApiValidationII token服务TokenService获取当前用户信息的辅助类III 域登录接口响应数据登陆用户信息引言 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO…

SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)

目录 一、环境准备 二、新建项目 三、整合依赖 1、MyBatis Plus 数据库操作 2、Hutool 工具库 3、Knife4j 接口文档 4、其他依赖 四、通用基础代码 1、自定义异常 2、响应包装类 3、全局异常处理器 4、请求包装类 5、全局跨域配置 补充&#xff1a;设置新建类/接…

京准电钟:NTP精密时钟服务器在自动化系统中的作用

京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 NTP精密时钟服务器在自动化系统中的作用非常重要&#xff0c;特别是在需要高精度时间同步的场景中。NTP能够提供毫秒级的时间同步精度&#xff0c;这…

基于Redis 的分布式 session 图解

Redis 分布式 Session 工作原理 1. 传统 Session 的问题 在传统单服务器环境中&#xff0c;HTTP Session 存储在应用服务器的内存中。这在分布式系统中会导致问题&#xff1a; 用户的请求可能被分发到不同服务器&#xff0c;导致会话不一致服务器宕机会导致会话丢失需要依赖…

pikachu

暴力破解 基于表单的暴力破解 【2024版】最新BurpSuit的使用教程&#xff08;非常详细&#xff09;零基础入门到精通&#xff0c;看一篇就够了&#xff01;让你挖洞事半功倍&#xff01;_burpsuite使用教程-CSDN博客 登录页面&#xff0c;随意输入抓包&#xff0c;发送到攻击…