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

vue3+ts+vite搭建脚手架(二)配置eslintprettier

我们用vite创建好的脚手架是十分纯净的,我们可以自由配置一些自己想要的东西

1.安装 eslint 依赖

npm i eslint eslint-plugin-vue @typescript-eslint/parser @typescript-eslint/eslint-plugin @vue/eslint-config-typescript -D
  • eslint:ESLint 的核心包。
  • eslint-plugin-vue:用于 Vue 文件的 ESLint 插件。
  • @typescript-eslint/parser:解析 TypeScript 文件。
  • @typescript-eslint/eslint-plugin:为 TypeScript 提供 ESLint 插件。
  • @vue/eslint-config-typescript

2.安装 prettier 依赖

npm i prettier @vue/eslint-config-prettier eslint-plugin-prettier -D
  • prettier:代码格式化工具。
  • eslint-config-prettier:禁用所有与 Prettier 格式化规则相冲突的 ESLint 规则。
  • eslint-plugin-prettier:将 prettier 作为 ESLint 规范来使用。

3.配置eslint、prettier相关文件

.eslintrc.js

module.exports = {root: true,parser: 'vue-eslint-parser',parserOptions: {parser: '@typescript-eslint/parser',sourceType: 'module'},extends: ['plugin:vue/vue3-recommended','eslint:recommended','plugin:@typescript-eslint/recommended','prettier','plugin:prettier/recommended'],rules: {'no-var': 'error',semi: 'off','@typescript-eslint/consistent-type-definitions': ['error', 'interface'],'@typescript-eslint/no-explicit-any': 'off','@typescript-eslint/no-var-requires': 0,'@typescript-eslint/no-require-imports': 'off','vue/multi-word-component-names': 'off','no-async-promise-executor': 'off','@typescript-eslint/no-empty-object-type': 'off','no-undef': 'off','@typescript-eslint/no-unused-vars': ['error',{vars: 'all',args: 'after-used',ignoreRestSiblings: false}],'vue/html-indent': ['error',2,{attribute: 1,baseIndent: 1,closeBracket: 0,alignAttributesVertically: true,ignores: []}],'vue/max-attributes-per-line': ['off'],'vue/no-setup-props-destructure': 'off',camelcase: ['error', { properties: 'always' }]}
}

.prettierrc.json

{"semi": false,"tabWidth": 2,"singleQuote": true,"printWidth": 100,"trailingComma": "none"
}

package.json文件添加两个脚本,用来在编译前检查一下代码

 "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","prettier": "prettier --write src/"

package.json

{"name": "vite-project","private": true,"version": "0.0.0","type": "module","scripts": {"dev": "vite","build": "vue-tsc -b && vite build","preview": "vite preview","lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","prettier": "prettier --write src/"},"dependencies": {"axios": "^1.7.7","lodash": "^4.17.21","mockjs": "^1.1.0","vue": "^3.4.37","vue-router": "^4.4.3"},"devDependencies": {"@types/lodash": "^4.17.7","@types/node": "^22.5.4","@typescript-eslint/eslint-plugin": "^8.5.0","@typescript-eslint/parser": "^8.5.0","@vitejs/plugin-vue": "^5.1.2","@vue/eslint-config-prettier": "^9.0.0","@vue/eslint-config-typescript": "^13.0.0","autoprefixer": "^10.4.20","eslint": "8.57.0","eslint-define-config": "^2.1.0","eslint-plugin-prettier": "^5.2.1","eslint-plugin-vue": "^9.28.0","path": "^0.12.7","postcss": "^8.4.45","prettier": "^3.3.3","tailwindcss": "^3.4.10","typescript": "^5.5.3","vite": "^5.4.1","vite-plugin-mock": "^3.0.2","vue-tsc": "^2.0.29"}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot接口开发总结
  • Java设计模式—面向对象设计原则(四) ----->接口隔离原则(ISP) (完整详解,附有代码+案例)
  • 网络安全宣传周 | DNS安全威胁与应对措施分享
  • Google提出 Speculative RAG:通过草稿机制增强检索增强生成
  • HTB-Vaccine(suid提权、sqlmap、john2zip)
  • ImDisk Toolkit将一部分RAM模拟成硬盘分区
  • 构建响应式 Web 应用:Vue.js 基础指南
  • Linux内核编程(十六)CAN总线驱动
  • Anolis OS 8.8 CentOS8离线安装mysql-8.0.9
  • Docker简介在Centos和Ubuntu环境下安装Docker
  • 医疗监测数据检测系统源码分享
  • Chrome和Chromium浏览器有什么不同?
  • 鸿蒙之Hello Word 遇坑总结 mac系统 不能预览 提示 Only files in a module can be previewed 解决办法
  • 第十一周:机器学习笔记
  • arcgisPro地理配准
  • @jsonView过滤属性
  • 2019.2.20 c++ 知识梳理
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • exif信息对照
  • HTTP中GET与POST的区别 99%的错误认识
  • Java比较器对数组,集合排序
  • Java程序员幽默爆笑锦集
  • Java应用性能调优
  • php中curl和soap方式请求服务超时问题
  • Python利用正则抓取网页内容保存到本地
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring Boot MyBatis配置多种数据库
  • tab.js分享及浏览器兼容性问题汇总
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 日剧·日综资源集合(建议收藏)
  • 温故知新之javascript面向对象
  • 我从编程教室毕业
  • 正则表达式小结
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #stm32整理(一)flash读写
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.ajax()方法详解
  • (02)Unity使用在线AI大模型(调用Python)
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (5)STL算法之复制
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (六)vue-router+UI组件库
  • (五)IO流之ByteArrayInput/OutputStream
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)Java算法:二分查找