vue3+ts+vite集成eslint

news2024/12/26 0:01:50

项目中安装eslint

yarn add eslint -D

eslint初始化

npx eslint --init

按照下方操作即可

在这里插入图片描述

安装@typescript-eslint/parser

yarn add @typescript-eslint/parser -D

安装vite-plugin-eslint2

yarn add vite-plugin-eslint2 -D

配置vite-plugin-eslint2

// vite.config.ts
import eslint from 'vite-plugin-eslint2';

export default defineConfig({
	plugins: [
		eslint({
		  cache: false, // 不生成eslint缓存
		  include: ['src/**/*.{js,jsx,ts,tsx,vue}']
		})
	]
})

eslint.config.js参考

import globals from 'globals';
import pluginJs from '@eslint/js';
import tsEslint from 'typescript-eslint';
import pluginVue from 'eslint-plugin-vue';

export default [
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        Component: true,
        ComponentPublicInstance: true,
        ComputedRef: true,
        EffectScope: true,
        ExtractDefaultPropTypes: true,
        ExtractPropTypes: true,
        ExtractPublicPropTypes: true,
        InjectionKey: true,
        PropType: true,
        Ref: true,
        VNode: true,
        WritableComputedRef: true,
        apiUrl: true,
        axios: true,
        computed: true,
        createApp: true,
        customRef: true,
        defineAsyncComponent: true,
        defineComponent: true,
        effectScope: true,
        getCurrentInstance: true,
        getCurrentScope: true,
        h: true,
        inject: true,
        isProxy: true,
        isReactive: true,
        isReadonly: true,
        isRef: true,
        markRaw: true,
        nextTick: true,
        onActivated: true,
        onBeforeMount: true,
        onBeforeRouteLeave: true,
        onBeforeRouteUpdate: true,
        onBeforeUnmount: true,
        onBeforeUpdate: true,
        onDeactivated: true,
        onErrorCaptured: true,
        onMounted: true,
        onRenderTracked: true,
        onRenderTriggered: true,
        onScopeDispose: true,
        onServerPrefetch: true,
        onUnmounted: true,
        onUpdated: true,
        provide: true,
        reactive: true,
        readonly: true,
        ref: true,
        resolveComponent: true,
        shallowReactive: true,
        shallowReadonly: true,
        shallowRef: true,
        statusCode: true,
        toRaw: true,
        toRef: true,
        toRefs: true,
        toValue: true,
        triggerRef: true,
        unref: true,
        useAttrs: true,
        useCssModule: true,
        useCssVars: true,
        useLink: true,
        useRoute: true,
        useRouter: true,
        useSlots: true,
        watch: true,
        watchEffect: true,
        watchPostEffect: true,
        watchSyncEffect: true,
        process: true
      },
      parserOptions: {
        parser: '@typescript-eslint/parser' // 需要手动安装这个插件
      }
    }
  },
  pluginJs.configs.recommended,
  ...tsEslint.configs.recommended,
  ...pluginVue.configs['flat/essential'],
  {
    rules: {
      'quotes': ['error', 'single'], // 字符串必须是单引号
      'semi': ['error', 'always', { omitLastInOneLineBlock: true }], // 必须使用分号
      'no-duplicate-imports': 'error', // 禁止重复导入
      'no-unreachable-loop': 'error', // 不允许循环体只允许一次迭代
      'no-use-before-define': 'error', // 禁止定义变量前使用
      'camelcase': 'error', // 强制驼峰命名
      'complexity': ['error', 10], // 限制圈复杂度
      'curly': 'error', // 对所有控制语句强制执行一致的大括号样式
      'default-case': 'error', // 要求 switch 语句中有 default 分支
      'default-case-last': 'error', // 强制 default 分支出现在最后
      'default-param-last': 'error', // 强制在函数的参数默认值出现在最后
      'dot-notation': 'error', // 强制尽可能地使用点号
      'eqeqeq': 'error', // 要求使用 === 和 !==
      'func-name-matching': 'error', // 要求函数名与赋值给它们的变量名或属性名相匹配
      'init-declarations': 'error', // 要求或禁止 var 声明中的初始化
      'max-depth': ['error', 3], // 强制可嵌套的块的最大深度
      'no-alert': 'error', // 禁用 alert、confirm 和 prompt
      'no-caller': 'error', // 禁用 arguments.caller 或 arguments.callee
      'no-eval': 'error', // 禁用 eval()
      'no-floating-decimal': 'error', // 禁止数字字面量中使用前导和末尾小数点
      'no-implied-eval': 'error', // 禁止使用类似 eval() 的方法
      'no-nested-ternary': 'error', // 禁用嵌套的三元表达式
      'no-var': 'error', // 要求使用 let 或 const 而不是 var
      'no-unused-vars': 'off', // 可以出现未使用过的函数参数变量
      'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', // 禁用 console
      'prefer-const': ['error', { destructuring: 'all' }], // 要求使用 const 声明那些声明后不再被修改的变量
      'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0, maxBOF: 0 }], // 禁止出现多行空行
      'no-extra-parens': 'error', // 禁止不必要的括号
      'object-curly-spacing': ['error', 'always'], // 强制在花括号中使用一致的空格
      'no-param-reassign': ['error', { props: true }], // 禁止对 function 的参数进行重新赋值
      '@typescript-eslint/no-explicit-any': ['off'], // 可以使用 any
      'vue/multi-word-component-names': ['off'], // 可以使用多个单词的组件名
      'vue/no-setup-props-destructure': ['off'], // 可以使用 props 解构
      'prefer-spread': 'off'// 可以使用apply
    }
  }
];

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

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

相关文章

汇编基础之使用vscode写hello world

汇编语言(Assembly Language) 概述 汇编语言(Assembly Language)是一种低级编程语言,它直接对应于计算机的机器代码(machine code),但使用了更易读的文本符号。每台个人计算机都有…

【UG\NX二次开发】UF 调用Grip例子(实现Grip调用目标dll)(UF_call_grip)

此例子是对:【UG\NX二次开发】UF 加载调用与卸载目标dll(UF_load_library、UF_unload_library)_ug二次开发dll自动加载-CSDN博客的补充。 ①创建txt文本,编写以下内容(功能:接收路径,调用该路径的dll)。改后缀为Grip文件(.grs)。…

uniapp顶部导航栏实现自定义功能按钮+搜索框并监听响应事件

目录 第一步:先下载按钮需要展示的图标(若不使用图标,直接使用文字可跳过这步) 1、点击需要的图标,添加入库 2、点击旁边的购物车,在弹出的窗口中选择下载代码 3、解压下载的压缩包,将这几个…

第J7周:对于ResNeXt-50算法的思考

本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 | 接辅导、项目定制 🚀 文章来源:K同学的学习圈子深度学习第J6周:ResNeXt-50实战解析K同学的学习圈子 在 ResNeXt 网络中,如果…

旅游管理平台系统

摘要 如今许多地区的风景已经随着网络技术的不断发展和进步而映入人们的眼帘,旅游已经成为一种大众化的休闲方式。而青海海西州风光旖旎,民族文化独特,更是吸引了众多游客纷至沓来。海西州地域广阔、人烟稀少、是一个经济发展缓慢的地方&…

代码随想录第27天|回溯算法

93.复原IP地址 补充: 字符串的操作 str.insert() 发生重载 str.insert(str.begin(), ‘x’) 只能是插入char类型 insert(const const_iterator _Where, const _Elem _Ch) str.insert(0, “x”) 只能是 string类型 insert(const size_type _Off, In_z const _Elem* const _Ptr) …

c++之说_15|成员函数的const尾缀修饰 ( const const)

我记得我刚接触c的时候 遇到成员函数 右边尾部 写了个const 我当时就很蒙 不过慢慢的也从大佬口中获得一二经验了 class kj{public:void get(){printf("无修饰\n");}void get()const{printf("const 修饰\n");}}; 大概就是这个样子 当时我抓耳挠腮的看…

pytorch--Pooling layers

文章目录 1.torch.nn.MaxPool1d()2.torch.nn.MaxPool2d3.torch.nn.AvgPool2d()4.torch.nn.FractionalMaxPool2d()5.torch.nn.AdaptiveMaxPool2d()6.torch.nn.AdaptiveAvgPool2d() 1.torch.nn.MaxPool1d() torch.nn.MaxPool1d() 是 PyTorch 库中的一个类,用于在神经网…

服务器硬件知识

服务器硬件基础知识 简介 原理详解 服务器硬件的工作原理是将来自客户端的请求处理并返回结果。服务器硬件是指用于构建服务器系统的物理组件。它包括处理器(CPU)、内存(RAM)、存储设备(硬盘或固态硬盘)…

uniapp使用md5加密

目录 一、安装md5 二、在main.js中全局引入并挂载到vue实例中 三、使用md5加密 一、安装md5 在终端输入 npm install js-md5 -D 二、在main.js中全局引入并挂载到vue实例中 import Md5 from js-md5 Vue.prototype.$md5 Md5 三、使用md5加密 let password_md5 this.$md…

任务3.8.3 利用RDD统计每日新增用户

任务目标 统计给定用户访问历史数据中,每日的新增用户数量。 数据准备 原始数据格式:每行包含两个字段,日期和用户名,以逗号分隔。示例数据:2024-05-01,mike 2024-05-01,alice 2024-05-01,brown ...解决方案 使用倒…

【HTML01】HTML基础-基本元素-附带案例-作业

文章目录 HTML 概述学HTML到底学什么HTML的基本结构HTML的注释的作用html的语法HTML的常用标签:相关单词参考资料 HTML 概述 英文全称:Hyper Text Markup Language 中文:超文本标记语言,就将常用的50多个标记嵌入在纯文本中&…

18V-150V降5V100mA恒压WT5101

18V-150V降5V100mA恒压WT5101 WT5101是一款非隔离高集成度且低成本的PWM功率开关,用于外围元器件精简的小功率非隔离开关电源,恒压5V输出,输入电压18V-150V。WT5101集成有完善的保护功能:VDD欠压保护、逐周期电流限制、过流保护、…

3D视觉引导机器人提升生产线的自动化水平和智能化程度

随着智能化技术的不断发展,汽车制造企业正积极寻求提升智能化水平的途径。富唯智能的3D视觉引导机器人抓取技术为汽车制造企业提供了一种高效、智能的自动化解决方案。 项目目标 某汽车制造企业希望通过引入智能化技术提升生产线的自动化水平和智能化程度。他们希望…

RockChip Android12 Settings二级菜单

一:概述 本文将针对Android12 Settings的二级菜单System进行说明。 二:System 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name=".Settings$SystemDashboardActivity"android:label="@string/header_category_system&quo…

代码随想录算法训练营第四十二天|1049. 最后一块石头的重量 II , 494. 目标和 , 474.一和零

1049. 最后一块石头的重量 II - 力扣&#xff08;LeetCode&#xff09; class Solution {public int lastStoneWeightII(int[] stones) {if(stones.length 0){return 0;}if(stones.length 1){return stones[0];}int sum 0;for(int i0;i<stones.length;i){sum stones[i];…

【数学】负数

Hello!大家好&#xff0c;我是学霸小羊&#xff0c;今天讲讲负数。 目录 1.负数的概念 2.绝对值 附&#xff1a;c求绝对值方法 3.负数的大小比较 1.负数的概念 比0小的数&#xff0c;叫做负数。 负数全称负实数&#xff0c;负数与正数表示意义相反的量。负数用负号(Min…

最新版WordPress网创资源美化主题整站源码更新自动同步插件

最新更新了美化右侧悬浮图标 底部分类板块&#xff0c;以及文章自动同步插件 1.支持分类替换 将主站同步过来的文章分类进行替换 2.支持本地化文章图片 &#xff08;使用储存桶可能会导致无法保存图片&#xff09; 3.支持自定义文章作者&#xff08;选择多个作者则同步到的…

C++之模板(二)

1、类模板 2、使用类模板 类模板在使用的时候要显示的调用是哪种类型&#xff0c;而不是像函数模板一样能够根据参数来推导出是哪种类型。 Stack.h #include <stdexcept>template <typename T> class Stack { public:explicit Stack(int maxSize);~Stack();void …

SEO之预估流量及价值(一)

初创企业搭建网站的朋友看1号文章&#xff1b;想学习云计算&#xff0c;怎么入门看2号文章谢谢支持&#xff1a; 1、我给不会敲代码又想搭建网站的人建议 2、新手上云 正规公司关键词研究的最后一步是预估搜索流量及价值。 个人站长做关键词研究不一定需要这一步。找到最合适…