ESLint机制浅析01-整体机制与规范包

2021-12-03  本文已影响0人  前端老邹_伯通

1.认识ESLint

需要注意的是:ESLint 有两个工具,一个是 模块包 ,一个是 VSCode的扩展工具 本结课主要讲 eslint 模块包

1.1 ESLint 包

image.png

1.2 VS中ESLint扩展工具

image.png

2.ESLint详解

【官网】https://eslint.bootcss.com/

2.1 介绍

image.png

2.2为什么要用ESLint

代码千万行,安全第一行;前端不规范,同事两行泪

2.3 eslint 用法

3.手动下载配置(原理)

【官网】https://eslint.bootcss.com/docs/user-guide/getting-started

通过手动下载配置,可以帮我们更好的理解 eslint 的工作

3.1 创建项目

3.2 ESLint安装

  1. 直接在项目中安装eslint包 npm i eslint -D

  2. 注意安装结果:node_moduels 中下载了很多包

    • .bin/eslint.cmd 脚本文件,内部通过 nodejs 执行 eslint运行包 的代码

    • @eslint包 用来规范 eslint配置文件

    • eslint开头的包eslint运行包,包含eslint代码

image.png

3.3 生成ESLint配置文件

ESLint 可以创建独立的配置文件 .eslintrc.js,也可以 直接在 package.json 中配置

  1. 执行 node_modules/.bin 文件夹里的 eslint脚本创建配置文件

    • 包含完整脚本路径的命令:./node_modules/.bin/eslint --init

    • 也可以用 npx 来执行(推荐)npx eslint --init

      npx是随node一起安装的,能去 .bin 目录 里找 目标脚本文件,简化执行脚本的语法)

  2. 创建配置文件过程中,需要选择配置:


    image.png
  1. 执行结果:

    • 创建了 配置文件 .eslintrc.js

      image.png

3.4 生成配置文件报错

image.png image.png

3.5 解决方案

image.png

3.6 ESLint执行

4.ESLint配置文件入门

【官网】https://eslint.bootcss.com/docs/user-guide/configuring

image.png

4.1 配置文件格式

image.png

4.2 JS格式使用模式

4.3 env节点

"env": {
    "browser": true,
    "commonjs": true,
    "es2021": true
}

4.4 globals节点

"globals": {
    "_": true  // 可以读取,可以修改
    "$": false // 可以读取,不能修改
}

4.5 extends 节点

"extends": [
    "standard" // "eslint-config-standard"
]

4.6 parserOptions 节点

"parserOptions": {
    "ecmaVersion": 12
}

4.7 rules 节点

"rules": {
}
image.png

5.ESLint检查语法的规则

【官网】https://eslint.bootcss.com/docs/rules/

这些报错的起点在哪?ESLint 是按照什么规范来检查代码的呢?

5.1 ESLint语法规范本质

image.png

6. 语法规范包类型

6.1 内置规范包

6.2 标准规范包(需要下载)

image.png

6.3 第三方规范包

有很多啊,我们就拿最流行的 airbnb 来举例

image.png

b.下载 相关包 npx install-peerdeps --dev eslint-config-airbnb-base

image.png

7. 配置规范包

7.1 修改 eslint 配置文件

module.exports = {
    "env": {
        "browser": true,
        "commonjs": true,
        "es2021": true
    },
    // "extends": "eslint:all", // 内置:所有规则
    // "extends": "eslint:recommended", // 内置:推荐规则
    "extends": "eslint-config-standard", // 第三方:标准规则
    // "extends": "eslint-config-airbnb-base", // 第三方:airbnb公司规则
    "parserOptions": {
        "ecmaVersion": 12
    },
    "rules": {
    }
};

7.2 运行ESLint

npx eslint ./index.js // 检查 目标文件
npx eslint ./src // 检查 目标文件夹 中所有js文件

7.3 测试不同包检查相同代码

   let a = 1;
// delete a
try {
            console.log(a)
} catch (error) {
   
}
const ref = new WeakRef({ name: 'daotin' });
let obj = ref.deref();
if (obj) {
  console.log(obj.name); // daotin
} 

image.png
上一篇 下一篇

猜你喜欢

热点阅读