Vue3 项目完整配置
目录
- 一、配置简述
- 二、创建项目
- 1、使用包管理工具 pnpm
- 2、新增目录
- 三、配置 ESLint
- 1、添加代码
- 2、修改 VSCode 配置
- 四、husky 工具配置
- 五、暂存区 eslint 校验
- 六、axios 配置
- 1、安装创建
- 2、测试
- 七、导入 Element Plus
- 八、Pinia 持久化实现
- 九、其他
- 导入 .scss 文件需要安装 sass 插件
- 路径提示
一、配置简述
- 开发工具:VSCode
- 包管理工具:pnpm
- 代码质量检测:ESLint
- 代码格式化:Prettier
- 暂存区:eslint
- 数据交互:axios
- 页面效果:Element Plus
- Pinia 持久化:pinia-plugin-persistedstate
二、创建项目
1、使用包管理工具 pnpm
速度更快,更节省磁盘
- 安装方式:
npm install pnpm - 创建项目:
pnpm create vue或者使用 npm init vue@latest - 创建选项:选择 Vue Router、Pinia、ESLint、Prettier
- 进入目录执行:
pnpm install
2、新增目录
- apis:API 接口
- composables:组合函数
- directives:全局指令
- styles:全局样式
- utils:工具函数
三、配置 ESLint
ESLint 用于代码质量检测;Prettier 用于代码格式化;配合使用
1、添加代码
在 .eslintrc.cjs 文件中的 module.exports 对象中添加:
,rules: {'prettier/prettier': ['warn',{singleQuote: true, //单引号semi: false, //无分号printwidth: 80, //每行宽度至多80字符trailingComma: 'none', //不加对象|数组最后逗号endofLine: 'auto' //换行符号不限制(win mac不致)}],'vue/multi-word-component-names': ['warn',{ignores: ['index'] // vue组件名称多单词组成(忽略index.vue)}],'vue/no-setup-props-destructure': ['off'], //关闭props解构的校验//添加未定义变量错误提示, create-vue@3.6.3 关闭'no-undef': 'error'}
2、修改 VSCode 配置
a. 禁用 prettier 插件,安装 ESLint 插件
b. 在设置中添加:
//ESlint插件 + Vscode配置 实现自动格式化修复
"editor.codeActionsOnSave": {"source.fixAll": true
},
//关闭保存自动格式化
"editor.formatOnSave": false,
四、husky 工具配置
a. git 提交代码前会帮助我们进行校验,并指出错误的代码
b. 执行git init初始化 git
c. 初始化 husky 工具配置,执行pnpm dlx husky-init && pnpm install
五、暂存区 eslint 校验
a. pnpm lint 命令是全局效验,速度太慢,所以配置暂存区,只校验暂存区
b. 安装 lint-staged 包,执行pnpm i lint-staged -D
c. package.json 添加 lint-staged 命令:
,"lint-staged": {"*.{js,ts,vue}":["eslint --fix"]}
d. 在 scripts 中添加:
"lint-staged": "lint-staged"
e. husky/pre-commit 文件中的 npm test 修改为:pnpm lint-staged
六、axios 配置
1、安装创建
a. 安装命令:
pnpm install axios
b. utils 包下面的 request.js 文件:
import axion from 'axios'
//为了导入token
import { useUserStore } from '@/stores'
import { ElMessage } from 'element-plus'
import router from '@/router'//改成自己配置的router
//基础地址:如:
const baseURL = 'http://xuantianling.net'const instance = axion.create({//基础地址,超时时间baseURL,timeout: 10000
})//请求拦截器
instance.interceptors.request.use((config) => {//携带 token//const userStore = useUserStore()//if (userStore.token) {//判断是否有token//有token的话每次请求都在请求头上添加上//config.headers.Authorization = userStore.token//}return config},(err) => Promise.reject(err)
)//响应拦截器
instance.interceptors.response.use((res) => {//if (res.data.code == 0) {//根据后端传送的数据判断是否响应成功//响应成功,放行//return res//}//响应失败//ElMessage.error(res.data.message || '服务异常')return Promise.reject(res.data)},(err) => {//处理401错误,权限不足||token过期//if (err.response?.state === 401) {//router.push('/login')//}//错误的默认情况//ElMessage.error(err.response.data.message || '服务异常')Promise.reject(err)}
)
export default instance
export { baseURL }
2、测试
a. 创建请求文件
import instance from '@/utils/request'export const userLoginService = (user) => request.post('/api/login', user)
b. 在 main.js 中进行测试
userLoginService(user).then(res => {// 获取用户登录返回的信息console.log(res)
})
七、导入 Element Plus
a. 执行命令:
pnpm install element-plus
b. 按需导入:npm install -D unplugin-vue-components unplugin-auto-import
c. 在 vite.config.ts 文件中添加:
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],
})
八、Pinia 持久化实现
a. 安装插件:pinia-plugin-persistedstate,命令:
pnpm install pinia-plugin-persistedstate
b. 开始持久化:在对应模块第三个参数传入 persist,设置值为 true
九、其他
导入 .scss 文件需要安装 sass 插件
a. 很大几率是要使用 .scss 文件
b. 安装命令:pnpm add sass -D
路径提示
插件 path in tellisense 配置一下就有路径提示了
相关文章:
Vue3 项目完整配置
目录 一、配置简述二、创建项目1、使用包管理工具 pnpm2、新增目录 三、配置 ESLint1、添加代码2、修改 VSCode 配置 四、husky 工具配置五、暂存区 eslint 校验六、axios 配置1、安装创建2、测试 七、导入 Element Plus八、Pinia 持久化实现九、其他导入 .scss 文件需要安装 s…...
二十三种设计模式全面解析-从线程安全到创新应用:探索享元模式的进阶之路
在软件开发领域,线程安全和设计模式都是我们经常遇到的话题。线程安全保证了多线程环境下的数据一致性和可靠性,而设计模式则提供了一套经验丰富的解决方案。在前文中,我们已经了解了线程安全的处理和享元模式的基本概念。但是,如…...
Qt之qobject_cast使用
描述 qobject_cast是Qt中的一个转换函数,主要用于在QObject子类之间进行转换,实现父类指针向子类指针的转换。其语法为: qobject_cast<T>(object);其中,T表示目标类型,object表示要转换的QObject对象指针。 q…...
如何实现云端开发能力快速提升?【DevRun】云上开发创新实践带你实现
随着企业数字化的转型趋势,软件成为数字化转型的关键驱动力,在云计算越来越普及且作用愈发重要的今天,现代应用正以难以想象的速度在增长,同时对软件开发工具提出了新的要求。 华为云CodeArts作为一站式云上开发创新工具…...
猫头虎博主第7期赠书活动:《计算机考研精炼1000题》
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
Linux常见指令:从基础到理论
前言 目录 前言 1. find指令 拓展 2. grep指令 拓展 sort指令 uniq指令 wc指令 3. zip/unzip指令 4. tar指令 5. uname指令 拓展 6. Linux常用热键 7. 关机 8. rz指令 拓展 scp指令 9. shell命令以及运行原理 Linux常见指令是使用Linux系统时必不可少的一部分。通过掌握…...
ARM---CAN2.0B读取 汽车BMS报文
Qt CAN编程1- CAN总线整体介绍 - 简书 STM32---CAN2.0B读取新能源汽车BMS报文-CSDN博客 CAN通信标准帧和扩展帧介绍_can扩展帧-CSDN博客 【精选】详解CAN 2.0协议_can2.0-CSDN博客 QT实现CAN通信_五个板栗的技术博客_51CTO博客 linux CAN通讯基于Qt代码编写_pf_can-CSDN博客…...
第十一章 JSP开发模型
文章目录 一. 单选题(共5题,50分)二. 判断题(共5题,50分) 一. 单选题(共5题,50分) (单选题) JSPModel2开发的系统中,实现视图的是() A…...
Java面试题-Redis-第四天(线程模型一)
目录 一、Redis为何选择单线程? 二、Redis真的是单线程吗? 三、Redis6.0为何引入多线程 四、Redis6.0引入多线程之后,性能的提升效果如何? 一、Redis为何选择单线程? 通常对于一个数据库来说,CPU通常不…...
逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)(附代码)
代码原理 逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)是一种用于信号处理和数据分析的方法。它可以将复杂的信号分解为一系列模态函数,每个模态函数代表了信号中的一个特定频率成分。SVMD的主要目标是提取…...
Spring Boot(一)
Spring Boot是一个开源的Java框架,旨在简化基于Java的应用程序的开发和部署过程。它提供了许多开箱即用的功能和工具,使开发者能够快速构建独立、可执行的、生产级别的应用程序。 以下是Spring Boot的一些主要特点和优势: 简化的配置&#x…...
秩为1的矩阵的性质
...
酷安官网下载页前端自适应源码
酷安官网下载页前端自适应源码,自己拿走玩玩 站长只打开看了一眼,感觉风格还不错,纯html,自己魔改 转载自 https://www.qnziyw.cn/wysc/qdmb/24470.html...
Docker实战
一、Docker安装 以下均以CentOS 7为例 1、安装Docker yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 2、启动和校验 # 启动Docker systemctl start docker# 停止Docker systemctl stop docker# 重启 systemctl resta…...
什么是代理IP池?如何判断IP代理商的IP池是否真实优质?
代理池充当多个代理服务器的存储库,提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务,而无需担心被检测或阻止的风险。代理池为各种在线活动(例如网页抓取、安全浏览等)提高后勤保障。 读完…...
嵌入式养成计划-51----ARM--ARM汇编指令--内存读写指令--程序状态寄存器传输指令--软中断指令--混合编程
一百二十七、内存读写指令 通过内存读写指令可以实现向内存中写入指定数据或者读取指定内存地址的数据 127.1 单寄存器内存读写指令 将一个寄存器中的数值写入到内存,或者从内存中读取数据放在某一个指定寄存器中 127.1.1 指令码和功能 1. 向内存中写ÿ…...
RSA 2048位算法的主要参数N,E,P,Q,DP,DQ,Qinv,D分别是什么意思 哪个是通常所说的公钥与私钥 -安全行业基础篇5
非对称加密算法RSA 在RSA 2048位算法中,常见的参数N、E、P、Q、DP、DQ、Qinv和D代表以下含义: N(Modulus):模数,是两个大素数P和Q的乘积。N的长度决定了RSA算法的安全性。 E(Public Exponent&a…...
开发知识点-stm32/ESP32/Mega2560嵌入式设计
嵌入式设计 STM32四轴飞行器原理图解析小马哥 DragonFly四轴软件开发 13 STM32 SPI总线通讯SPI 总线协议简介SPI 物理层SPI 协议层SPI 通信时序 STM32硬件SPI接口简介SPI接口 利用库函数初始化配置 ESP32 “F:\res\marlin-2.0.x” “F:\res\Marlin-2.1.2” STM32四轴飞行器 小…...
亚马逊云科技海外服务器初体验
目录 前言亚马逊云科技海外服务器概述注册使用流程实例创建性能表现用户体验服务支持初体验总结 前言 随着云原生技术的飞速发展,越来越多的企业和开发者选择云服务器来作为自己的使用工具,云原生技术的发展也促进了云服务厂商的产品发展,所…...
外贸出口游戏设备亚马逊CE认证电磁兼容性(EMC)测试解析
游戏设备上架亚马逊出口欧盟需办理CE认证电磁兼容性(EMC)测试。 CE认证,作为欧盟的一项标准,成为了游戏设备行业中最为重要的认证之一。CE认证不仅是游戏设备进入欧洲市场的必要条件,也是保证产品符合欧洲市场标准的重…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...
多模态大语言模型arxiv论文略读(110)
CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文标题:CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文作者:Hidehisa Arai, Keita Miwa, Kento Sasaki, Yu Yamaguchi, …...
