Eslint

news2024/11/26 0:47:37

1. 配置文件

配置文件由很多种写法:

  • .eslintrc.*:新建文件,位于项目根目录
    • .eslintrc
    • .eslintrc.js
    • .eslintrc.json
    • 区别在于配置格式不一样
  • package.json 中 eslintConfig:不需要创建文件,在原有文件基础上写。

2. 具体配置

module.exports = {
  // 解析选项
  parserOptions: {},
  // 具体检查规则
  rules: {},
  // 继承其他规则
  extends: [],
  // ...
  // 其他规则详见:https://eslint.bootcss.com/docs/user-guide/configuring
};
  1. parserOptions 解析选项
parserOptions: {
  ecmaVersion: 6, // ES 语法版本
  sourceType: "module", // ES 模块化
  ecmaFeatures: { // ES 其他特性
    jsx: true // 如果是 React 项目,就需要开启 jsx 语法
  }
}

 ​​​​​​2. rules 具体规则

  • "off" 或 0 - 关闭规则
  • "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  • "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
rules: {
  semi: "error", // 禁止使用分号
  'array-callback-return': 'warn', // 强制数组方法的回调函数中有 return 语句,否则警告
  'default-case': [
    'warn', // 要求 switch 语句中有 default 分支,否则警告
    { commentPattern: '^no default$' } // 允许在最后注释 no default, 就不会有警告了
  ],
  eqeqeq: [
    'warn', // 强制使用 === 和 !==,否则警告
    'smart' // https://eslint.bootcss.com/docs/rules/eqeqeq#smart 除了少数情况下不会有警告
  ],
}

3. extends 继承

现有以下较为有名的规则:

  • Eslint 官方的规则open in new window:eslint:recommended
  • Vue Cli 官方的规则open in new window:plugin:vue/essential
  • React Cli 官方的规则open in new window:react-app
// 例如在React项目中,我们可以这样写配置
module.exports = {
  extends: ["react-app"],
  rules: {
    // 我们的规则会覆盖掉react-app的规则
    // 所以想要修改规则直接改就是了
    eqeqeq: ["warn", "smart"],
  },
};

在 Webpack 中使用

npm i eslint-webpack-plugin eslint -D
  1. 定义 Eslint 配置文件
  • .eslintrc.js
module.exports = {
  // 继承 Eslint 规则
  extends: ["eslint:recommended"],
  env: {
    node: true, // 启用node中全局变量
    browser: true, // 启用浏览器中全局变量
  },
  parserOptions: {
    ecmaVersion: 6,
    sourceType: "module",
  },
  rules: {
    "no-var": 2, // 不能使用 var 定义变量
  },
};
  • webpack.config.js
const path = require("path");
const ESLintWebpackPlugin = require("eslint-webpack-plugin");
module.exports = {
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "static/js/main.js",
    clean: true,
  },
  plugins: [
    new ESLintWebpackPlugin({
      context: path.resolve(__dirname, "src"),
    }),
  ],
  mode: "development",
};

src / index.js

var result1 = count(2, 1);
console.log(result1);
var result2 = sum(1, 2, 3, 4);
console.log(result2);

执行 npx webpack

VSCode Eslint 插件 

        打开 VSCode,下载 Eslint 插件,即可不用编译就能看到错误,可以提前解决。但是此时就会对项目所有文件默认进行 Eslint 检查了,我们 dist 目录下的打包后文件就会报错。但是我们只需要检查 src 下面的文件,不需要检查 dist 下面的文件,所以可以使用 Eslint 忽略文件解决。在项目根目录新建下面文件:

  • .eslintignore
# 忽略dist目录下所有文件
dist

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

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

相关文章

什么是Python?Python有什么特性?

什么是Python,相信第一次接触Python的同学会有一些疑问。我们通过百度百科得到Python的定义为:   Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本&#xff…

UDS入门至精通系列:诊断时间参数

文章目录 前言一、诊断时间参数 P2二、诊断时间参数 P2*三、诊断时间参数 S3四、上述参数在应用中的汇总总结前言 在职场中,对于自己领导吩咐的事情,事事有响应,是你在领导面前彰显自己能力的机会。并且这其中的响应时间就是你职业能力的时刻。 同样在汽车电子诊断领域,因…

忆享科技受邀亮相CIS2022网络安全创新大会

12月14日,忆享科技受邀亮相第八届网络安全创新大会(简称“CIS”)多维时空专场,与行业内资深专家及众多头部企业交流对话,深度了解网络安全行业新理念、新技术、新思路和新实践,共同探讨行业技术创新与突破。…

Java+Swing实现的五子棋游戏

JavaSwing实现的五子棋游戏一、系统介绍二、功能展示1.游戏展示三、系统实现1.ChessFrame .java四、其它1.其他系统实现2.获取源码一、系统介绍 五子棋游戏实现人机对战、人人对战两个模式。 二、功能展示 1.游戏展示 三、系统实现 1.ChessFrame .java package five;impor…

【图像处理】图像拼接原理介绍

问题 图像拼接是图像处理的基础之一,虽然自己并没有直接做图像拼接方面的研究,但在面试中却多次被问到这方面的内容,可见这个知识点还是很重要的。事实上,很多场景都会用到图像拼接的知识,例如运动检测与跟踪、游戏画…

HJL-E6/A DC220V数字式【电流继电器】

1.用途 HJL系列数字式交流电流继电器为瞬时动作特性,用于发电机,变压器和输电线路的过负荷和短路保护,作为启动元件。 2.安装结构 导轨安装9,导轨安装E 两种壳体尺寸,具体尺寸请参考外型尺寸…

Spark 3.0 - 12.ML GBDT 梯度提升树理论与实战

目录 一.引言 二.GBDT 理论 1.集成学习 2.分类 & 回归问题 3.梯度提升 4.GBDT 生成 三.GBDT 实战 1.数据准备 2.构建 GBDT Pipeline 3.预测与评估 四.总结 一.引言 关于决策树前面已经介绍了常规决策树与随机森林两种类型的知识,本文主要介绍梯度提…

小游戏赛道如何加速流量增长?

小游戏是指设计极简的轻量级游戏。它构造简单,但却给人带来了娱乐性和重复参与的欲望。 近年来,小游戏在抖音、微信小游戏等平台拥有着疯狂裂变的可能性,出现了例如“羊了个羊”“跳一跳”、“合成大西瓜”等风靡一时的小游戏。 这些爆火的小…

「微服务系列」统一网关Gateway

为什么需要网关 网关功能: 身份认证和权限校验服务路由、负载均衡请求限流在SpringCloud中网关的实现包括两种: Zuul:基于Servlet的实现,属于阻塞式编程。SpringCloudGateway:是基于Spring5中提供的WebFlux&#xf…

关注渐冻症|菌群助力探索其发病机理及相关干预措施

最杰出的物理学家之一的斯蒂芬威廉霍金想必大家都知道,以及曾经风靡全网的“冰桶挑战”,它们都与一种罕见疾病有关,那就是渐冻症。 媒体的宣传让渐冻症成为了较为“知名”罕见病之一;2000年丹麦举行的国际病友大会上正式确定6月21…

【Redis】数据类型操作二 (Set/Hash/Zset)

文章目录3、Redis集合(Set)4、 Redis哈希(Hash)5、Redis有序集合Zset(sorted set)实操3、Redis集合(Set)4、 Redis哈希(Hash)5、Redis有序集合Zset(sorted set)3、Redis集合(Set) Redis Set 是String类型的无序集合。一个key集合可以对应多个value元素。Redis Set 可以自动排重…

[附源码]Python计算机毕业设计高校篮球训练管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

Python如何做自动化测试?

众做周知,自动测试的优势是显而易见的,它可以大大节省我们的时间,提高我们的工作效率。那么Python如何做自动化测试呢?本文将用Python编写一个简单的测试用例,并指导大家写做自动化测试的代码。如果大家对这个内容感兴…

基于java+springboot+mybatis+vue+mysql的会员制医疗预约服务管理信息系统

项目介绍 会员制医疗预约服务管理信息系统是针对会员制医疗预约服务管理方面必不可少的一个部分。在会员制医疗预约服务管理的整个过程中,会员制医疗预约服务管理系统担负着最重要的角色。为满足如今日益复杂的管理需求,各类的管理系统也在不断改进。系…

[计算机网络微课]第三章 数据链路层

数据链路层 概述 数据链路层在网络体系结构中的地位 主机 H1 给主机 H2 发送数据,中间要经过 3 个路由器和电话网、局域网以及广域网等多种网络。从五层协议原理体系结构角度来看 为了专注数据链路层内容,这里我们只考虑数据链路层,而不考…

体外诊断丨艾美捷游离维多珠单抗ADA水平检测试剂盒

introduction: Crohns disease in patients with moderate to severe active ulcerative colitis, routine treatment or tumor necrosis factor α (TNF α) Antagonists can also be treated with vidolizumab. Vedolizumab is a humanized monoclona…

并查集引入

目的 主要是处理一些不相交集合的合并问题,比如:求连通子图,求最小生成树的克鲁斯卡尔算法以及最近公共祖先(LCA)等 简单应用就是连通图,将元素进行合并,如果要优化路径的话可以利用数据压缩 …

大学生简单抗击疫情静态HTML网页设计作品 DIV布局疫情感动人物介绍网页模板代码 DW学生抗疫逆行者网站制作成品下载

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_Home

继上篇介绍File功能模块之后,今天我们来介绍vTESTstudio工程使用过程的种的另外一个重要的工具栏Home,这块将是我们使用vTESTstudio编程中使用最多的一个功能模块。话不多说,下面我们就来一一介绍该功能栏能在我们编程的时候做哪些事情。 2、…

网关服务限流熔断降级【Gateway+Sentinel】

目录 第一步:启动sentinel-dashboard控制台 第二步:在网关服务中引入sentinel依赖 第三步:在网关服务application.yml中配置sentinel 第四步:通过网关进入服务 再进入sentinel控制台查看链路情况 第一步:启动sen…