ESlint--解析器parser、parserOptions与插件

解析器:

ESLint默认使用Espree作为其解析器

你可以指定解析器,但是要符合下列要求:

  1. 它必须是一个 Node 模块,可以从它出现的配置文件中加载。
    通常,这意味着应该使用 npm 单独安装解析器包
  2. 它必须符合 parser interface
注意:
        即使满足这些兼容性要求,也不能保证一个外部解析器可以与 ESLint
正常配合工作,ESLint 也不会修复与其它解析器不兼容的相关 bug
在.eslintrc 文件里指定 parser 选项表明使用该npm模块作为解析器之一

例如,下面的配置指定了 Esprima 作为解析器:

{
    "parser": "esprima",
    "rules": {
        "semi": "error"
    }
}

以下解析器与 ESLint 兼容:
1、Esprima
2、Babel-ESLint
一个对Babel解析器的包装,使其能够与 ESLint 兼容。
3、@typescript-eslint/parser
将 TypeScript 转换成与 estree 兼容的形式,以便在ESLint中使用。

注意:
	在使用自定义解析器时,
	为了让 ESLint 在处理非 ECMAScript 5 特性时正常工作,
	配置属性 parserOptions 仍然是必须的
	解析器会被传入parserOptions,
	但是不一定会使用它们来决定功能特性的开关。

parserOptions参数

	"parser":"esprima",
	"parserOptions": { 
		"ecmaVersion": 6 ,
		//emcaVersion用来指定你想要使用的 ECMAScript 版本
		"sourceType": "module",
		// 设置为 "script" (默认)或"module"(如果你的代码是 ECMAScript 模块)
		"ecmaFeature":{ //想使用额外的语言特性
			"jsx":true, //启用jsx
			"globalReturn":true, //在全局作用域下使用return语句
			"impliedStrict":true, //启用全局strict mode
			"experimentalObjectRestSpread":false 
			//启用实验性的object rest/spread properties支持
			//(不建议开启)
		}

1、“ecmaVersion”: 6 ,

emcaVersion用来指定你想要使用的 ECMAScript 版本

2、“sourceType”: “module”,

设置为 “script” (默认)或"module"(如果代码是 ECMAScript 模块)

3、“ecmaFeature”:

想使用额外的语言特性

  • “jsx”:true, //启用jsx
  • “globalReturn”:true, //在全局作用域下使用return语句
  • “impliedStrict”:true, //启用全局strict mode
  • “experimentalObjectRestSpread”:false
    //启用实验性的object rest/spread properties支持
    //(不建议开启)
    注意:
//对于 ES6 语法,使用 
{ 
	"parserOptions": { 
		"ecmaVersion": 6 
	} 
}

//对于新的 ES6 全局变量,使用 
{ 
	"env":{ 
		"es6": true 
	} 
}. 
{ 
	"env": { "es6": true }
} 
自动启用es6语法和全局变量,但
 { 
	"parserOptions": 
	{ 	
		"ecmaVersion": 6
	 } 
} 
不自动启用es6全局变量

插件:

插件是一个npm 包,通常输出规则,可以提供处理器
ESLint 支持使用第三方插件
在使用插件之前,你必须使用 npm 安装它

在配置文件.eslint.*里配置插件时可以使用plugins关键字来存放插件名字的列表

插件名称可以省略 eslint-plugin- 前缀

{
    "plugins": [
    	"react"
    ],
    "overrides": [   // overrides 键和 processor 键特定类型的文件指定处理器
        {
            "files": ["*.vue"],	//文件名
            "processor": ""
             //插件名和处理器名组成的串接字符串加上斜杠 plugins+'/'+processor
              "rules": { //指定规则
                "strict": "off" //在该插件下检查时关闭严格模式
            }
        }
    ]
}

在rules配置中定义插件的约束

配置定义在插件中的一个规则的时候,你必须使用 插件名/规则ID 的形式

"rules":{
	"react/no-console":"warn"
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值