vite-admin框架搭建,ESLint + Prettier 语法检测和代码格式化

news2024/12/23 10:52:27

vite-admin框架搭建,ESLint + Prettier 语法检测和代码格式化

  • 1. 环境和工具
  • 2. 项目初始化
  • 3. 安装插件
    • 1. 安装ESLint
      • 1.1 安装插件
      • 1.2 初始化ESLint
    • 2. 安装Prettier
      • 2.1 安装插件
      • 2.2 配置Prettier
    • 3. vscode 安装插件及配置
      • 3.1 安装插件 ESLint 和 Prettier - Code formatter
      • 3.2 解决ESLint与Prettier的冲突
      • 3.3 保存文件时自动格式化代码
      • 3.4 忽略不想被检测和格式化的文件
      • 3.5 控制台输出打印ESLint报错
      • 3.5 ESLint语法检测示例

1. 环境和工具

开发工具: vs code
node: 20.10.0
npm: 10.2.3
UI框架: Element-plus

gitee地址:

2. 项目初始化

搭建一个新的vite项目

// 执行
npm create vite@latest

回车后选择 vue 和 Typescript
✔ Select a framework: › Vue
✔ Select a variant: › TypeScript

在这里插入图片描述
搭建完成执行命令后如图所示
在这里插入图片描述
安装完后项目目录为
在这里插入图片描述

3. 安装插件

1. 安装ESLint

1.1 安装插件

// 安装eslint
npm i eslint -D

1.2 初始化ESLint

vite-admin % npx eslint --init
You can also run this command directly using 'npm init @eslint/config'.
✔ How would you like to use ESLint? · problems
✔ What type of modules does your project use? · esm
✔ Which framework does your project use? · vue
✔ Does your project use TypeScript? · No / Yes
✔ Where does your code run? · browser, node
✔ What format do you want your config file to be in? · JavaScript
The config that you've selected requires the following dependencies:

@typescript-eslint/eslint-plugin@latest eslint-plugin-vue@latest @typescript-eslint/parser@latest
✔ Would you like to install them now? · No / Yes
✔ Which package manager do you want to use? · npm
Installing @typescript-eslint/eslint-plugin@latest, eslint-plugin-vue@latest, @typescript-eslint/parser@latest

added 34 packages, and audited 185 packages in 9s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
Successfully created .eslintrc.cjs file in /Library/vite-admin

安装后生成 .eslintrc.cjs 文件, 配置如下:

module.exports = {
    "env": {
        "browser": true,
        "es2021": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:vue/vue3-essential"
    ],
    "overrides": [
        {
            "env": {
                "node": true
            },
            "files": [
                ".eslintrc.{js,cjs}"
            ],
            "parserOptions": {
                "sourceType": "script"
            }
        }
    ],
    "parserOptions": {
        "ecmaVersion": "latest",
        "parser": "@typescript-eslint/parser",
        "sourceType": "module"
    },
    "plugins": [
        "@typescript-eslint",
        "vue"
    ],
    "rules": {
    }
}

2. 安装Prettier

2.1 安装插件

npm install prettier -D

2.2 配置Prettier

根目录下创建.prettierrc.cjs文件
.prettierrc.cjs 配置如下:

// prettier的默认配置文件
module.exports = {
  // 一行最多 150 字符
  printWidth: 150,
  // 使用 2 个空格缩进
  tabWidth: 2,
  // 不使用缩进符,而使用空格
  useTabs: false,
  // 不尾随分号
  semi: true,
  // 使用单引号
  singleQuote: true,
  // 多行逗号分割的语法中,最后一行不加逗号
  trailingComma: 'none',
  // 单个参数的箭头函数不加括号 x => x
  arrowParens: 'avoid',
  // 对象大括号内两边是否加空格 { a:0 }
  bracketSpacing: true,
  //结束行形式
  endOfLine: 'lf',
  //不对vue中的script及style标签缩进
  vueIndentScriptAndStyle: false
};


3. vscode 安装插件及配置

3.1 安装插件 ESLint 和 Prettier - Code formatter

  • ESLint:语法检测
  • Prettier - Code formatter: 代码格式化

在这里插入图片描述

在这里插入图片描述
安装后在 首选项 -> 设置 中配置 setting.json文件

在这里插入图片描述
在这里插入图片描述

打开后配置如下

{
  "security.workspace.trust.untrustedFiles": "open",
  "editor.formatOnSave": true,
  "editor.formatOnPaste": true,
  // vscode默认启用了根据文件类型自动设置tabsize的选项
  "editor.detectIndentation": false,
  // 重新设定tabsize
  "editor.tabSize": 2,
  // 每次保存的时候自动格式化
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  // 把prettier设置为vscode默认的代码格式化工具
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  // vue文件的默认格式化工具选择prettier
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "workbench.settings.applyToAllProfiles": [],
  "git.autofetch": true
}

3.2 解决ESLint与Prettier的冲突

因为ESLint和Prettier都可以进行代码格式化,在setttings.json文件中同时开启了ESLint和Prettier进行代码格式化,所以两者重叠的格式化规则不一致时就导致了格式化代码时出现冲突的问题。

解决冲突:
安装 eslint-config-prettier 和 eslint-plugin-prettier 依赖:

npm install eslint-config-prettier eslint-plugin-prettier -D

安装后,在 .eslintrc.cjs 中 extends的最后添加一个配置:
在这里插入图片描述

 extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:vue/vue3-essential',
    "plugin:prettier/recommended" // 解决ESlint和Prettier冲突
  ],

3.3 保存文件时自动格式化代码

在设置中搜索 Format on save, 勾选即可
在这里插入图片描述

3.4 忽略不想被检测和格式化的文件

  • 忽略不参与eslint检测的文件,可以创建一个 .eslintignore , 配置内容跟 git忽略文件一样
  • 忽略不被格式化的文件,可以创建一个 .prettierignore, 配置内容跟 git忽略文件一样

比如不想检测和格式化 vite.config.ts
.eslintignore 文件

vite.config.ts

.prettierignore 文件

vite.config.ts

这样,保存和修改文件的时候不会被检测和格式化文件

3.5 控制台输出打印ESLint报错

1、安装插件 vite-plugin-eslint

npm install vite-plugin-eslint -D

2、vite.config.ts文件中配置 vite-plugin-eslint插件

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import eslintPlugin from 'vite-plugin-eslint'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    eslintPlugin({
      include: ['src/**/*.ts', 'src/**/*.js', 'src/**/*.vue', 'src/*.ts', 'src/*.js', 'src/*.vue']
    })
  ]
})

项目运行刷新后就可以自动检测规范报错了
在这里插入图片描述

3.5 ESLint语法检测示例

在这里插入图片描述

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

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

相关文章

许战海战略文库|加加食品:错过窗口期的“酱油第一股”如何逆袭

加加食品集团股份有限公司成立于1996年,是一家综合研发、生产和营销的大型调味品上市公司。该公司在2012年1月6日成功上市,被尊称为“中国酱油第一股”。然而,在近年来,该公司经历了重大挑战,包括持续的业绩下滑、低迷…

Docker简述与基础部署详解

docker官网:https://www.docker.com docker中文库:https://www.docker.org.cn/ Docker是一种开源的容器化平台,用于轻松打包、交付和运行应用程序。Docker的主要优势在于它提供了一种轻量级、可移植、自包含的容器化技术,使得应用程序及其所…

基于uniapp封装的card容器 带左右侧两侧标题内容区域

代码 <template><view class"card"><div class"x_flex_header"><div><title v-if"title ! " class"title" :title"title" :num"num"></title></div><div><s…

计算机网络—— 概述

概述 1.1 因特网概述 网络、互联网和因特网 网络由若干结点和连接这些结点的链路组成多个网络还可以通过路由器互联起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;即互联网&#xff08;或互连网&#xff09;。因特网&#xff08;Internet&#xff09;是世…

连接两个路由器的有线连法,关键时候可能会发挥不小的作用

路由器网桥连接两个或多个路由器&#xff0c;以扩展网络范围&#xff0c;提供额外的以太网端口和无线接入点。但在开始之前&#xff0c;你必须首先决定如何使用每个路由器。因此&#xff0c;你需要知道你想要实现什么&#xff0c;并清楚地了解你对每台设备的期望。 例如你想扩…

docker run 命令详解

一、前言 Docker容器是一个开源的应用容器引擎&#xff0c;让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何安装了Docker引擎的服务器上&#xff08;包括流行的Linux机器、Windows机器&#xff09;&#xff0c;也可以实现虚拟…

目标检测-One Stage-YOLOv5

文章目录 前言一、YOLOv5的网络结构和流程YOLOv5的不同版本YOLOv5的流程YOLOv5s的网络结构图 二、YOLOv5的创新点1. 网络结构2. 输入数据处理3. 训练策略 总结 前言 前文目标检测-One Stage-YOLOv4提到YOLOv4主要是基于技巧的集成&#xff0c;对于算法落地具有重大意义&#x…

面试算法105:最大的岛屿

题目 海洋岛屿地图可以用由0、1组成的二维数组表示&#xff0c;水平或竖直方向相连的一组1表示一个岛屿&#xff0c;请计算最大的岛屿的面积&#xff08;即岛屿中1的数目&#xff09;。例如&#xff0c;在下图中有4个岛屿&#xff0c;其中最大的岛屿的面积为5。 分析 将岛屿…

Mysql 数据库ERROR 1820 (HY000): You must reset your password using ALTER USER 解决办法

Mysql 5.7数据库原来一直都能正常访问&#xff0c;突然访问不了&#xff0c;查看日志提示数据库需要修改密码&#xff0c; 具体解决办法如下操作&#xff1a; Windows 下&#xff1a; mysql的bin目录下&#xff0c; mysql>use mysql; mysql>mysql -uroot -p密码; 判…

git常用命令及概念对比

查看日志 git config --list 查看git的配置 git status 查看暂存区和工作区的变化内容&#xff08;查看工作区和暂存区有哪些修改&#xff09; git log 查看当前分支的commit 记录 git log -p commitID详细查看commitID的具体内容 git log -L :funcName:fileName 查看file…

独家原创:“ARO算法的再进化,BMARO的创新改进与卓越表现“

人工兔优化算法ARO作为一种近期比较好的优化算法&#xff0c;深受人们和编辑的喜爱。 人工兔优化算法&#xff08;Artificial Rabbit Optimization, ARO&#xff09;是一种基于自然界兔子行为的启发式优化算法。该算法通过模拟兔子在寻找食物和规遍领地时的智能行为&#xff0…

Pytest接口自动化应用

目录 前言 一、接口自动化项目构成 二、Pytest基础介绍 1.安装Pytest 2.PyCharm中设置使用Pytest 3.pytest使用规则 4.pytest运行方式 a.读取配置文件pytest.ini b.主函数模式 c.命令行模式 5.pytest参数化 6.pytest前置和后置 7.pytest断言 三、自动化实现部分源…

工程项目管理系统源码与Spring Cloud:实现高效系统管理与二次开发

随着企业规模的不断扩大和业务的快速发展&#xff0c;传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

Win10子系统Ubuntu实战(一)

在 Windows 10 中安装 Ubuntu 子系统&#xff08;Windows Subsystem for Linux&#xff0c;简称 WSL&#xff09;有几个主要的用途和好处&#xff1a;Linux 环境的支持、跨平台开发、命令行工具、测试和验证、教育用途。总体而言&#xff0c;WSL 提供了一种将 Windows 和 Linux…

phpcms v9后台添加草稿箱功能

一、后台添加文章模板phpcms/modules/content/templates/content_add.tpl.php中94行增加”保存草稿“按钮&#xff1a; <div class"button"><input value"<?php echo L(save_draft);?>" type"submit" name"dosubmit_draf…

【YOLO系列】 YOLOv4思想详解

前言 以下内容仅为个人在学习人工智能中所记录的笔记&#xff0c;先将目标识别算法yolo系列的整理出来分享给大家&#xff0c;供大家学习参考。 本文未对论文逐句逐段翻译&#xff0c;而是阅读全文后&#xff0c;总结出的YOLO V4论文的思路与实现路径。 若文中内容有误&#xf…

A借助AI工具提升电子邮件营销内容效果

随着互联网的普及和电子邮件的广泛应用&#xff0c;邮件营销已成为企业推广产品和服务的重要手段之一。为了提高邮件营销的效果&#xff0c;我们需要关注邮件内容的质量和吸引力。而百度文言一心等AI工具作为一款强大的在线写作工具&#xff0c;可以帮助我们提升邮件营销内容的…

pytorch基础(八)-TensorBoard

一、TensorBoard运行机制 python记录可视化的数据--》存储到硬盘--》在web端进行可视化 1.python记录可视化的数据 writer.add_scalar(名称, y轴, x轴) writer SummaryWriter(commenttest_tensorboard)for x in range(100):writer.add_scalar(y2x, x * 2, x)writer.add_sc…

Go新手别再被切片复制坑了

概述 Go 语言中切片的复制是非常重要也比较容易让新手困惑的问题。本文将通过大量示例代码,全面介绍切片复制的相关知识,包括: 切片的结构 copy()函数的用法 切片复制的本质 浅复制和深复制的区别 如何实现切片深复制 copy()函数的常见用途 切片复制需要注意的几点 1. 切…