eslintignore的忽略配置

22,244 阅读2分钟

一、背景

公司项目需要增加eslint校验,由于项目多而杂,并且一些老页面已经很久没有更新过了,项目组成员达成一致意见:从今往后,新增的页面增加eslint检查,老页面先忽略使用。

二、实现

1、eslintignore是用来干什么的?

当 ESLint 运行时,在确定哪些文件要检测之前,它会在当前工作目录中查找一个 .eslintignore 文件。如果发现了这个文件,当遍历目录时,将会应用这些偏好设置。

eslint通过.eslintignore 文件或者在 package.json 文件中查找 eslintIgnore 键,来检查要忽略的文件

2、如何定义.eslintignore

(1)在项目根目录创建一个 .eslintignore 文件告诉 ESLint 去忽略特定的文件和目录。.eslintignore 文件是一个纯文本文件,其中的每一行都是一个 glob 模式表明哪些路径应该忽略检测。

名次解释:glob模式是指shell所使用的简化了的正则表达式。

(2)配置如下:
/node_modules
/dist
/src/assets/js
/src/views
/package-lock.json
.DS_Store
vue.config.js
(3)遵循的规则,参考gitignore的配置规则
/hello/*    // 开头有“/”,匹配相对于`.gitignore`文件本身的目录级别的。
hello/      // 结尾“/”, 匹配任意级别的hello目录下的所有目录(不包含文件)
hello.*     // 匹配以hello.开头的文件或者文件夹
hello/*     // 匹配hello目录下的所有目录和文件
!/foo/bar   // 排除目录 foo/bar 之外的所有内容
**/foo      // 前导 " `**`",在所有目录中匹配, 与foo相同
foo/**      // 尾随的“ `/**`”匹配里面的所有内容。匹配目录“ `foo`”下的所有文件

需要注意的是:

一个可选的前缀“ !”,它否定了模式;任何被先前模式排除的匹配文件将再次包含在内。如果排除了该文件的父目录,则无法重新包含该文件。

 例如:想忽略src下面的所有目录和文件,但除去src/views/hello目录。
 
 src/*              // 排除src目录下面所有的
 !src/views/        // src/views下面所有的目录重新被包含回来
 src/views/*        // 排除 src/views下面所有的目录
 !src/views/hello/  // src/views/hello下面所有的目录重新被包含回来