prettier、eslint、stylelint在项目中使用

  1. prettier
    1)vscode中使用
    a. 安装插件(Prettier)

在这里插入图片描述
安装成功后,在你打开支持的文件时,下方文件信息状态栏会有prettier标致:
在这里插入图片描述
双击它或者直接在输出命令窗口那里查看prettier的日志信息:
在这里插入图片描述
从日志这里可以看出,它是优先使用项目中的prettier配置的。
另外,一般你下载代码格式化插件,都是搭配vscode的文件自动保存格式的(这样方便),但是注意,这个自动保存格式化使用的是文件的默认格式化配置。

b. vscode配置
格式化的默认配置修改为prettier。
在这里插入图片描述
开启格式化自动保存。
在这里插入图片描述
最后记得要重启vscode

注意:当配置发生变化的时候也要重启vscode

2)项目中使用
a. 新建配置(.prettierrc.cjs 或者.prettier.json),下面以.prettierrc.cjs为例

module.exports = {printWidth: 150, // 每行代码长度(默认80)tabWidth: 2, // 缩进空格数useTabs: false, //不用tab缩进semi: true, //// 在语句末尾打印分号singleQuote: true, // 使用单引号而不是双引号vueIndentScriptAndStyle: true, //Vue文件脚本和样式标签缩进quoteProps: 'as-needed', // 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"jsxSingleQuote: true, // 在JSX中使用单引号而不是双引号trailingComma: 'es5', //多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>",默认nonebracketSpacing: true, // 在对象文字中的括号之间打印空格jsxBracketSameLine: false, //jsx 标签的反尖括号需要换行arrowParens: 'always', // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => xrangeStart: 0, // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码rangeEnd: Infinity,requirePragma: false, // 指定要使用的解析器,不需要写文件开头的 @prettierinsertPragma: false, // 不需要自动在文件开头插入 @prettierproseWrap: 'preserve', // 使用默认的折行标准 always\never\preservehtmlWhitespaceSensitivity: 'css', // 指定HTML文件的全局空格敏感度 css\strict\ignoreendOfLine: 'auto', // 因为prettier的规范和eslint的换行规则不同,所以这个必须配置。要不然每次打开文件都会有一堆的警告;换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr
};

b. package.json增加配置

"lint:prettier": "prettier --write \"src/**/*.{js,ts,json,tsx,css,scss,vue,html,md}\""

在这里插入图片描述
c. 执行 npm run lint:prettier

  1. eslint 采用antfu-config
    1)安装eslint插件
    在这里插入图片描述

2)通过生成配置文件

npx @antfu/eslint-config@latest

在这里插入图片描述
3)安装

npm install @antfu/eslint-config@latest

4)更改eslint.config.js

import antfu from '@antfu/eslint-config'export default antfu({// @stylistic/eslint-plugin-plus// stylistic: true,stylistic: {indent: 2, // 4, or 'tab'quotes: "single", // or 'double/single'semi: true,},// eslint-plugin-formatformatters: true,// unocss 检测&格式化 暂时注释 等配置了unocss再开放为true// unocss: true,// vue的eslint配置vue: true,// 保存删除未引入的代码// isInEditor: false,// 9x版本 忽略文件这种配置方式 废弃掉eslintignoreignores: ['*.sh','node_modules','*.md','*.woff','*.ttf','.idea','/public','/docs','.husky','.local','/bin','Dockerfile',],lessOpinionated: true,rules: {'eslint-comments/no-unlimited-disable': 'off','ts/no-use-before-define': 'off','style/no-mixed-operators': 'off','no-console': 'warn','ts/no-unused-expressions': 'off','style/max-statements-per-line': 'off','ts/prefer-namespace-keyword': 'off','antfu/top-level-function': 'off','node/prefer-global/process': 'off','ts/consistent-type-definitions': 'off','ts/ban-ts-comment': 'off','vue/singleline-html-element-content-newline': 'off', // vue 标签强制换行// 关闭一些耗时的规则'import/no-cycle': 'off','import/no-deprecated': 'off','import/no-named-as-default': 'off','prefer-promise-reject-errors': 'off',// 'ts/no-unused-vars': ['error', {//   argsIgnorePattern: '^_',//   varsIgnorePattern: '^_',// }],// '@typescript-eslint/no-unused-vars': ['error', {//   argsIgnorePattern: '^_',//   varsIgnorePattern: '^_',// }],},
})

5)重启vscode
6)效果展示
在这里插入图片描述
3. stylelint
1)安装插件
在这里插入图片描述
2)安装依赖包

npm install -D stylelint stylelint-config-standard stylelint-order stylelint-config-prettier

3)增加以下配置
.stylelintignore

/dist/*
/public/*
public/*

.stylelintrc.cjs

module.exports = {root: true,plugins: ['stylelint-order'],extends: ['stylelint-config-standard', 'stylelint-config-prettier'],rules: {'selector-pseudo-class-no-unknown': [true,{ignorePseudoClasses: ['global'],},],'selector-pseudo-element-no-unknown': [true,{ignorePseudoElements: ['v-deep'],},],'at-rule-no-unknown': [true,{ignoreAtRules: ['tailwind','apply','variants','responsive','screen','function','if','each','include','mixin',],},],'no-empty-source': null,'named-grid-areas-no-invalid': null,'unicode-bom': 'never','no-descending-specificity': null,'font-family-no-missing-generic-family-keyword': null,'declaration-colon-space-after': 'always-single-line','declaration-colon-space-before': 'never',// 'declaration-block-trailing-semicolon': 'always','rule-empty-line-before': ['always',{ignore: ['after-comment', 'first-nested'],},],'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }],'order/order': [['dollar-variables','custom-properties','at-rules','declarations',{type: 'at-rule',name: 'supports',},{type: 'at-rule',name: 'media',},'rules',],{ severity: 'warning' },],},ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'],
};

stylelint.config.js(16.x.x.x以上)

export default {plugins: ['stylelint-order'],extends: ['stylelint-config-standard', 'stylelint-config-prettier'],rules: {'selector-pseudo-class-no-unknown': [true,{ignorePseudoClasses: ['global'],},],'selector-pseudo-element-no-unknown': [true,{ignorePseudoElements: ['v-deep'],},],'at-rule-no-unknown': [true,{ignoreAtRules: ['tailwind','apply','variants','responsive','screen','function','if','each','include','mixin',],},],'no-empty-source': null,'named-grid-areas-no-invalid': null,'unicode-bom': 'never','no-descending-specificity': null,'font-family-no-missing-generic-family-keyword': null,'declaration-colon-space-after': 'always-single-line','declaration-colon-space-before': 'never',// 'declaration-block-trailing-semicolon': 'always','rule-empty-line-before': ['always',{ignore: ['after-comment', 'first-nested'],},],'unit-no-unknown': [true, { ignoreUnits: ['rpx'] }],'order/order': [['dollar-variables','custom-properties','at-rules','declarations',{type: 'at-rule',name: 'supports',},{type: 'at-rule',name: 'media',},'rules',],{ severity: 'warning' },],},ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts', '/dist/*', '/public/*', 'public/*'],
}

4).settings.json增加

"source.fixAll.stylelint": "explicit"

在这里插入图片描述

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

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

相关文章

【C++】类对象内存布局与大小计算

1. 计算类对象的大小类实例化的对象中只存储成员变量&#xff0c;不存储成员函数&#xff0c;函数要用是通过 this 指针拿的。因为一个类可以实例化出 N 个对象&#xff0c;每个对象的成员变量都可以存储不同的值&#xff0c;但是调用的函数却是同一个。如果每个对象都成员函数…

容易忽视的TOS无线USB助手配网和接入USB使用: PC和TOS-WLink需要IP畅通,

引言&#xff1a;我们常常把重心放在了TOS-WLink的加入路由器&#xff0c;获取IP&#xff1b;常常忽视了其实是要求PC和TOS-WLink需要IP畅通TOS无线USB助手首次蓝牙配网, 无线接入USB设备到电脑, 分为是两个过程&#xff1a;1, 蓝牙连接TOS-WLink&#xff0c;如果配置的WIF…

学习Python中Selenium模块的基本用法(7:元素操作-1)

定位网页元素后&#xff0c;Selenium模块支持点击、发送文本或按键、清除内容等操作。本文以百度网站为例学习并测试这几类操作的基本用法。首先是发送文本或按键&#xff0c;主要用到send_keys函数&#xff0c;如果是发送文本&#xff0c;则直接将文本内容作为函数入参即可&am…

使用MP4视频格式链接地址的自适应视频弹窗实现方案HTML代码

以下是使用MP4视频格式链接地址的自适应视频弹窗实现方案&#xff1a;视频弹窗播放器 使用原生MP4视频格式链接&#xff0c;直接通过HTML5 video元素播放 响应式设计适配不同屏幕尺寸&#xff0c;16:9视频比例保持不变 底部视频列表可横向滚动&#xff0c;点击缩略图切换不同视…

中农具身导航赋能智慧农业!AgriVLN:农业机器人的视觉语言导航

作者&#xff1a;Xiaobei Zhao, Xingqi Lyu, Xiang Li单位&#xff1a;中国农业大学论文标题&#xff1a;AgriVLN: Vision-and-Language Navigation for Agricultural Robots论文链接&#xff1a;https://arxiv.org/pdf/2508.07406v1代码链接&#xff1a;https://github.com/Al…

Zynq开发实践(Verilog、仿真、FPGA和芯片设计)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】zynq最大的优势&#xff0c;就是把arm和fpga结合在一起了。这样一颗soc里面&#xff0c;就可以用软件去驱动外设ip&#xff0c;这是之前没有过的体验…

LabVIEW刺激响应测量解析

​该 LabVIEW 程序用于刺激 - 响应测量&#xff0c;实现测试信号生成、响应采集及测量分析&#xff0c;涵盖信号同步、并行处理等概念&#xff0c;用于设备总谐波失真&#xff08;THD&#xff09;等电信号特性测量场景&#xff0c;借助 LabVIEW 图形化编程优势&#xff0c;将复…

Boosting(提升法)详解

一、引言在集成学习&#xff08;Ensemble Learning&#xff09;中&#xff0c;Boosting&#xff08;提升法&#xff09; 是一种非常经典且强大的方法。它通过将多个弱学习器&#xff08;Weak Learners&#xff09;进行迭代组合&#xff0c;逐步提升整体的预测性能&#xff0c;从…

宠物智能手机PetPhone技术解析:AI交互与健康监测的系统级创新

当你的宠物通过AI自主接听视频通话&#xff0c;背后是计算机视觉与边缘计算的技术融合。全球首款宠物智能手机正在重新定义跨物种人机交互。近日&#xff0c;亚洲宠物展览会上亮相的PetPhone引发了技术社区的广泛关注。这款专为宠物设计的智能设备集成了多项技术创新&#xff0…

智慧零售商品识别误报率↓74%!陌讯多模态融合算法在自助结算场景的落地优化

原创声明&#xff1a;本文为原创技术解析文章&#xff0c;核心技术参数与架构设计引用自 “陌讯技术白皮书”&#xff0c;禁止未经授权的转载与篡改。文中算法逻辑与实战方案均基于陌讯视觉算法 v3.2 版本展开&#xff0c;所有实测数据均来自智慧零售场景下的真实部署环境。一、…

ArcGIS学习-9 ArcGIS查询操作

前置操作加载数据修改坐标系修改单位属性查询单条件查询打开安徽省县界的属性表多条件查询值得注意的是&#xff0c;不加括号和前面加括号&#xff0c;查出来的结果一致&#xff08;35条记录&#xff09;而后面加括号&#xff0c;查询结果与之前的不一致&#xff08;25条记录&a…

A-Level物理课程全解析:知识点、学习计划与培训机构推荐

A-Level物理课程是国际教育体系中的重要科目&#xff0c;不仅为大学理工科专业打下基础&#xff0c;也培养学生的科学思维与实验能力。本文将从核心知识点解析、高效学习计划制定&#xff0c;以及优质培训机构推荐三个方面&#xff0c;为学生和家长提供全面、实用的指南。一、A…

Linux 进阶之性能调优,文件管理,网络安全

一、系统性能调优系统性能调优是 Linux 管理中的关键技能&#xff0c;它能显著提升系统在不同应用场景下的表现。通过针对性的调优&#xff0c;可以解决资源瓶颈问题&#xff0c;提高服务响应速度&#xff0c;优化资源利用率。&#xff08;一&#xff09;CPU 性能调优知识点详解…

【科普向-第五篇】MISRA C实战手册:规则与指令全解析

目录 引言 1.1 起源与目的 1.2 规则体系结构 一.变量与类型&#xff08;Rule 1–9&#xff09; Rule 1.1 — 变量必须显式初始化&#xff08;Mandatory&#xff09; Rule 1.2 — 使用固定宽度整数类型&#xff08;Mandatory&#xff09; Rule 1.3 — 避免未定义行为的类…

Custom SRP - Shadow Masks

截图展示的是:近处实时阴影,远处烘焙阴影1 Baking Shadows阴影让场景更具层次感和真实感,但是实时阴影渲染距离有限,超出阴影距离的世界由于没有阴影显得很“平”.烘焙的阴影不会受限于阴影距离,可以与实时阴影结合解决该问题:最大阴影距离之内使用实时阴影最大阴影距离之外用烘…

Python爬虫实战:研究spidermonkey库,构建电商网站数据采集和分析系统

1 引言 1.1 研究背景 互联网数据已成为商业决策、学术研究的核心资源,网络爬虫作为数据获取的主要工具,在静态网页时代发挥了重要作用。然而,随着 AJAX、React、Vue 等技术的广泛应用,超过 70% 的主流网站采用 JavaScript 动态生成内容(如商品列表滚动加载、评论分页加载…

智能驾驶规划技术总结

前言 本文主要对智能驾驶规划技术相关知识进行初步探究和总结&#xff0c;以加深理解&#xff0c;及方便后续学习过程中查漏补缺。 分层规划策略 寻径 A*算法 概念 节点&#xff1a;网格化后的每一个最小单元父节点&#xff1a;路径规划中用于回溯的节点列表&#xff1a;需要不…

05 网络信息内容安全--对抗攻击技术

1 课程内容 网络信息内容获取技术网络信息内容预处理技术网络信息内容过滤技术社会网络分析技术异常流量检测技术对抗攻击技术 2 对抗攻击概述 2.1 对抗攻击到底是啥&#xff1f; 咱们先举个生活例子&#xff1a; 你平时看苹果能认出来 —— 红颜色、圆溜溜、带个小揪揪。但如果…

【FPGA】VGA显示-贪吃蛇

这个项目实现了一个完整的贪吃蛇游戏&#xff0c;使用Verilog HDL在FPGA上构建。项目包含了VGA显示控制、按键消抖处理、游戏逻辑和图形渲染等多个模块&#xff0c;展示了数字逻辑设计的综合应用。 项目概述 该设计使用硬件描述语言实现了经典贪吃蛇游戏的所有核心功能&#…

从PostgreSQL到人大金仓(KingBase)数据库迁移实战:Spring Boot项目完整迁移指南

&#x1f4d6; 前言 在国产化浪潮的推动下&#xff0c;越来越多的企业开始将数据库从国外产品迁移到国产数据库。本文将以一个真实的Spring Boot项目为例&#xff0c;详细介绍从PostgreSQL迁移到人大金仓&#xff08;KingBase&#xff09;数据库的完整过程&#xff0c;包括遇到…