本文同步自我的博客 https://joeray61.com

安装

局部:

npm install eslint --save-dev

全局:

npm install eslint -g

初始化

eslint --init

Note: 此处及以后都假设全局安装eslint或者在npm script中使用eslint

使用eslint进行校验

eslint file.js

配置

parser

指定eslint使用的 parser,默认是Espree,除此之外常用的还有:

  • Esprima

  • Babel-ESLint

.eslintrc示例:

{"parser": "esprima"
}

parserOptions

指定传给 parser 的信息

.eslintrc示例:

{"parserOptions": {"ecmaVersion": 6,"sourceType": "module","ecmaFeatures": {"jsx": true}}
}

env

指定程序运行的环境,这关系到有哪些预先定义好的全局变量

  • browser - 浏览器中的全局变量

  • node - nodejs中的全局变量

  • es6 - 启用 es6 中除了模块之外的其他特性(这会自动将parserOptions.ecmaVersion设置为6

  • worker - web worker中的全局变量

  • mocha - mocha 测试框架中的全局变量

  • ...

Note: 可以同时定义多个env

.eslintrc示例:

{"env": {"browser": true,"node": true}
}

globals

全局变量申明,true表示允许改写,false表示不允许改写

.eslintrc示例:

{"globals": {"var1": true,"var2": false}
}

plugins

声明使用了哪些插件,插件名可以默认忽略eslint-plugin-前缀,这些插件可以用于rulesenvextends等配置中

.eslintrc示例:

{"plugins": ["example" // or "eslint-plugin-example"],"env": {"example/custom": true},"extends": ["eslint:recommended","plugin:example/recommended"],"rules": {"example/rule1": "error"}
}

extends

继承一套基础配置

.eslintrc示例:

{"extends": "eslint:recommended"
}

rules

具体校验规则的配置

.eslintrc示例:

{"rules": {"no-set-state": "off"}
}

可以参考 http://eslint.org/docs/rules/ 了解更多rule

settings

共享的配置,配置中的信息将会被传递给所有要执行的规则(rule)

.eslintrc示例:

{"settings": {"sharedData": "Hello"}
}

注释配置

注释配置是指在js文件中通过注释来单独指定一些校验信息

env

/* eslint-env node, mocha */

global

/* global var1:false, var2:false */

rule

/* eslint eqeqeq: 0, curly: 2 */
  • "off" or 0: 关闭这条规则

  • "warn" or 1: 开启规则,如果校验有问题则抛出警告

  • "error" or 2: 开启规则,如果校验有问题则抛出错误

关闭/开启所有规则校验

/* eslint-disable */alert('foo');/* eslint-enable */

关闭/开启校验部分具体的规则校验

/* eslint-disable no-alert, no-console */alert('foo');
console.log('bar');/* eslint-enable no-alert, no-console */

关闭当前行的所有规则校验

alert('foo'); // eslint-disable-line

关闭下一行的所有规则校验

// eslint-disable-next-line
alert('foo');

关闭当前行的具体规则校验

alert('foo'); // eslint-disable-line no-alert

关闭下一行的具体规则校验

// eslint-disable-next-line no-alert
alert('foo');

eslint 学习笔记相关推荐

  1. Vue学习(常用实例、脚手架搭建)-学习笔记

    文章目录 Vue学习(常用实例.脚手架搭建)-学习笔记 实例1 法1 法2 实例2 脚手架搭建 vue-cli2.0 vue-cli4.0 Vue学习(常用实例.脚手架搭建)-学习笔记 附加:阿里巴巴 ...

  2. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  3. Vue2学习笔记1 - win10下安装vue开发环境

    操作系统为Win10_x64 1.安装NodeJs Vue的安装依赖NodeJs,所以需要先安装NodeJs,去NodeJs官网(http://nodejs.cn/download/)下载对应系统的n ...

  4. Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新

    我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...

  5. 【学习笔记】React+React全家桶学习笔记

    文章目录 1 为什么要使用React 2 React的定义 3 React的三大特性 4 React入门 4.1 hello_react 4.2 虚拟DOM的创建 4.3 JSX 4.4 模块与组件, ...

  6. Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决

    文章目录 一.参考资料 二.运行环境 三.Vue2插槽 3.1 默认插槽 3.2 具名插槽 3.3 作用域插槽 ES6解构赋值概念 & 作用域插槽的解构赋值 3.4 动态插槽名 四.GitHu ...

  7. 「Vue 学习笔记 1」Vue 项目快速搭建,初始项目各个文件夹作用介绍和启动代码执行流程分析

    「Vue 学习笔记 1」Vue 项目快速搭建,初始项目各个文件夹作用介绍和启动代码执行流程分析 前言 一.我的开发环境 二.使用 Vue CLI (Vue 脚手架)快速搭建项目 三.初始项目的目录结构 ...

  8. 前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs)

    前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs) 一. HTML 1. 盒子模型 是什么:每个元素被表示为一个矩形的盒子,有四个部分组成:内容(content ...

  9. Vue3项目搭建学习笔记

    Vue3项目搭建学习笔记 参考王红元老师vue课程 创建项目 vue create vue3-ts-cms 项目搭建规范 集成editorconfig配置 VSCode需要安装一个插件:EditorC ...

最新文章

  1. SFB 项目经验-13-为某上市企业仅安装Skype for Business 2016(图解)
  2. batch-size 深度学习笔记
  3. 列出所有K个元素的子集-----2013年1月26日
  4. python调用远程chromedriver.exe、selenium抓包方法
  5. bufferreader java_Java - BufferedReader对比FileReader到底哪里进行了优化
  6. 交互式多模型_体系化教学资源上新——小学数学交互式教学工具
  7. python数值运算代码_Python数值
  8. epson r1900 清零软件_EPSON 1430 R1900 1500 R330 R1800 R2000 R230 打印机清零软件
  9. android计算器括号,计算器(一)——加减和括号
  10. rocketMq配置外网IP
  11. 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
  12. 期末复习【操作系统】
  13. v-for 循环生成多个表单元素 给动态生成的表单元素绑定值并且添加校验规则
  14. 脱机运行scp linux,解决CentOS使用不了scp命令
  15. 大多数企业数字化转型的真正目的其实只是为了能多裁点人
  16. IO模型(阻塞,非阻塞,多路复用)
  17. svn 认证失败请看解决办法
  18. 在火狐上安装chrome 的crx扩展
  19. 怎么用手机和电脑同时预览PS设计稿
  20. 【人工智能哲学01/2】人工智能前世今生

热门文章

  1. 传美的投40亿进军卫浴行业
  2. lua_local变量在new时不会被清空
  3. Bootstrap-下拉菜单
  4. Linux--Ubuntu12.04下安装JDK
  5. Android 文件操作
  6. vuejs基础玩法(基础知识,不喜勿喷!)
  7. Coredata — 入门使用
  8. zepto+html5+php实现h5上传头像(移动端)上
  9. Spotify如何对Apache Storm进行规模扩展
  10. webpack 配置文件.conf.js 浅理解