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

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中的一个转换函数&#xff0c;主要用于在QObject子类之间进行转换&#xff0c;实现父类指针向子类指针的转换。其语法为&#xff1a; qobject_cast<T>(object);其中&#xff0c;T表示目标类型&#xff0c;object表示要转换的QObject对象指针。 q…...

如何实现云端开发能力快速提升?【DevRun】云上开发创新实践带你实现

随着企业数字化的转型趋势&#xff0c;软件成为数字化转型的关键驱动力&#xff0c;在云计算越来越普及且作用愈发重要的今天&#xff0c;现代应用正以难以想象的速度在增长&#xff0c;同时对软件开发工具提出了新的要求。 华为云CodeArts作为一站式云上开发创新工具&#xf…...

猫头虎博主第7期赠书活动:《计算机考研精炼1000题》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &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开发模型

文章目录 一. 单选题&#xff08;共5题&#xff0c;50分&#xff09;二. 判断题&#xff08;共5题&#xff0c;50分&#xff09; 一. 单选题&#xff08;共5题&#xff0c;50分&#xff09; (单选题) JSPModel2开发的系统中&#xff0c;实现视图的是&#xff08;&#xff09; A…...

Java面试题-Redis-第四天(线程模型一)

目录 一、Redis为何选择单线程&#xff1f; 二、Redis真的是单线程吗&#xff1f; 三、Redis6.0为何引入多线程 四、Redis6.0引入多线程之后&#xff0c;性能的提升效果如何&#xff1f; 一、Redis为何选择单线程&#xff1f; 通常对于一个数据库来说&#xff0c;CPU通常不…...

逐次变分模态分解(Sequential Variational Mode Decomposition,SVMD)(附代码)

代码原理 逐次变分模态分解&#xff08;Sequential Variational Mode Decomposition&#xff0c;SVMD&#xff09;是一种用于信号处理和数据分析的方法。它可以将复杂的信号分解为一系列模态函数&#xff0c;每个模态函数代表了信号中的一个特定频率成分。SVMD的主要目标是提取…...

Spring Boot(一)

Spring Boot是一个开源的Java框架&#xff0c;旨在简化基于Java的应用程序的开发和部署过程。它提供了许多开箱即用的功能和工具&#xff0c;使开发者能够快速构建独立、可执行的、生产级别的应用程序。 以下是Spring Boot的一些主要特点和优势&#xff1a; 简化的配置&#x…...

秩为1的矩阵的性质

...

酷安官网下载页前端自适应源码

酷安官网下载页前端自适应源码&#xff0c;自己拿走玩玩 站长只打开看了一眼&#xff0c;感觉风格还不错&#xff0c;纯html&#xff0c;自己魔改 转载自 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池是否真实优质?

代理池充当多个代理服务器的存储库&#xff0c;提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务&#xff0c;而无需担心被检测或阻止的风险。代理池为各种在线活动&#xff08;例如网页抓取、安全浏览等&#xff09;提高后勤保障。 读完…...

嵌入式养成计划-51----ARM--ARM汇编指令--内存读写指令--程序状态寄存器传输指令--软中断指令--混合编程

一百二十七、内存读写指令 通过内存读写指令可以实现向内存中写入指定数据或者读取指定内存地址的数据 127.1 单寄存器内存读写指令 将一个寄存器中的数值写入到内存&#xff0c;或者从内存中读取数据放在某一个指定寄存器中 127.1.1 指令码和功能 1. 向内存中写&#xff…...

RSA 2048位算法的主要参数N,E,P,Q,DP,DQ,Qinv,D分别是什么意思 哪个是通常所说的公钥与私钥 -安全行业基础篇5

非对称加密算法RSA 在RSA 2048位算法中&#xff0c;常见的参数N、E、P、Q、DP、DQ、Qinv和D代表以下含义&#xff1a; N&#xff08;Modulus&#xff09;&#xff1a;模数&#xff0c;是两个大素数P和Q的乘积。N的长度决定了RSA算法的安全性。 E&#xff08;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四轴飞行器 小…...

亚马逊云科技海外服务器初体验

目录 前言亚马逊云科技海外服务器概述注册使用流程实例创建性能表现用户体验服务支持初体验总结 前言 随着云原生技术的飞速发展&#xff0c;越来越多的企业和开发者选择云服务器来作为自己的使用工具&#xff0c;云原生技术的发展也促进了云服务厂商的产品发展&#xff0c;所…...

外贸出口游戏设备亚马逊CE认证电磁兼容性(EMC)测试解析

游戏设备上架亚马逊出口欧盟需办理CE认证电磁兼容性&#xff08;EMC&#xff09;测试。 CE认证&#xff0c;作为欧盟的一项标准&#xff0c;成为了游戏设备行业中最为重要的认证之一。CE认证不仅是游戏设备进入欧洲市场的必要条件&#xff0c;也是保证产品符合欧洲市场标准的重…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...

零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)

经过前面几期的内容我们学习了很多网络安全的知识&#xff0c;而这期内容就涉及到了前面的第六期-RCE模块&#xff0c;第七期-File inclusion模块&#xff0c;第八期-Unsafe Filedownload模块。 什么是"遍历"呢&#xff1a;对学过一些开发语言的朋友来说应该知道&…...

EC2安装WebRTC sdk-c环境、构建、编译

1、登录新的ec2实例&#xff0c;证书可以跟之前的实例用一个&#xff1a; ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境&#xff1a; https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...

开源项目实战学习之YOLO11:12.6 ultralytics-models-tiny_encoder.py

👉 欢迎关注,了解更多精彩内容 👉 欢迎关注,了解更多精彩内容 👉 欢迎关注,了解更多精彩内容 ultralytics-models-sam 1.sam-modules-tiny_encoder.py2.数据处理流程3.代码架构图(类层次与依赖)blocks.py: 定义模型中的各种模块结构 ,如卷积块、残差块等基础构建…...