ESLint--定制你的代码规则
简介
ESLint是一个开源的项目,由Nicholas C. Zakas(《JavaScript高级程序设计》作者)于2013年六月创建。它的目标是为JavaScript提供一个完全可配置的实用lint工具。
JavaScript是一种动态的、松散型的语言,是特别容易受到开发人员的错误使用。而ESLint可以在不执行JavaScript代码的情况下发现代码的问题。
ESLint由Node.js编写,通过NPM提供快速的运行环境,并且安装方便。
安装
全局安装
$ npm install -g eslint
本地安装
$ npm install eslint --save-dev
使用
生成配置文件
在你想要使用ESLint的工程根目录下执行:
eslint --init
这个命令的目的是创建一个eslint配置文件。如果你是全局安装的eslint,那么可以在任意文件中使用该命令,否则,你必须在使用该命令之前在该项目中安装eslint。
执行该命令后,一般会出现三个选项可供选择,他们分别是:
❯ Answer questions about your style
Use a popular style guide
Inspect your JavaScript file(s)
- 通过询问你来定制你的配置文件;
- 使用通用的配置文件;
- 通过审查你写的JavaScript文件来生成一个配置文件;
在这之后, 在你的目录中会有一个.eslintrc文件,这个.eslintrc的存在形式也是可选择的,它可以是JavaScript、YAML、JSON、package.json等等。
配置文件
生成配置文件之后,打开.eslintrc文件(一般是隐藏的),可以看到以下格式的内容:
{
"env": {
"browser": true
},
"extends": "eslint:recommended",
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"double"
],
"semi": [
"error",
"always"
]
},
Globals: {
}
}
我这个是json格式的,这里解释一下这个文件里各个参数的意思:
env :指定你的js代码在哪个运行环境中检测(每个运行环境都有一组预定义的全局变量);
extends :扩展配置规则(),我这里扩展的是eslint的推荐规则;
rules :指定检测规则;
这是最重要的部分,也是你的自定义js代码监测规则的地方,他的格式是:规则名: 规则。比如:
"indent": ["error","tab"]
这里
indent就是规则名,它定义了缩进应该使用tab,规则内的第一个值error指的是错误等级,它有三个等级,分别是:error level 数值表示 涵义 error 2 作为错误 warn 1 作为提醒 off 0 关闭该规则
更多的规则可以参考官网的rules。
- Globals :指定脚本执行过程中访问的附加全局变量(比如jquery)
PS:
您可以配置全局的.eslint文件,而不至于要每个工程中都创建一个独有的.eslint文件,烹制方法是将您的.eslintr文件放在当前用户的根目录下,类Unix系统的当前用户目录是~,而Windows系统的话则是类似于C:\Windows\Users\Username这样的地方
检测文件
在你的工程目录下执行:
eslint yourfile.js
它会在命令后输出你的所有报错信息。这样就ok了。个人感觉它的最大优势就是完全可配置,而且配置文件一次构建,可以通过粘贴复制的方式无数次使用。甚至整个团队可以通过使用一份配置文件来达到规范代码的作用,还是很强大的。
使用现有的通用规则
eslint官方提供了3种预安装包:
-
Google标准
执行安装:
npm install eslint eslint-config-google -g
-
Airbnb标准,它依赖eslint, eslint-plugin-import, eslint-plugin-react, and eslint-plugin-jsx-a11y等插件,并且对各个插件的版本有所要求。
你可以执行以下命令查看所依赖的各个版本:
npm info "eslint-config-airbnb@latest" peerDependencies
你会看到以下输出信息,包含每个了每个plugins的版本要求
{ eslint: '^3.15.0',
'eslint-plugin-jsx-a11y': '^3.0.2 || ^4.0.0',
'eslint-plugin-import': '^2.2.0',
'eslint-plugin-react': '^6.9.0' }
知道了每个plugins的版本要求后,代入以下命令执行安装即可使用:
npm install eslint-config-airbnb eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# -g
-
Standard标准,它是一些前端工程师自定的标准。
执行安装:
npm install eslint-config-standard eslint-plugin-standard eslint-plugin-promise -g
目前来看,公认的最好的标准是Airbnb标准。建议全局安装这些标准,然后在你的.eslint配置文件中直接使用:
{
"extends": "Airbnb/standard/Google/"
}
ESLint--定制你的代码规则的更多相关文章
- EF里如何定制实体的验证规则和实现IObjectWithState接口进行验证以及多个实体的同时验证
之前的Code First系列文章已经演示了如何使用Fluent API和Data Annotation的方式配置实体的属性,比如配置Destination类的Name属性长度不大于50等.本文介绍E ...
- 单元测试系列之十:Sonar 常用代码规则整理(二)
摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...
- 单元测试系列之九:Sonar 常用代码规则整理(一)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...
- 利用Sonar定制自定义JS扫描规则(二)——自定义JS扫描规则
在上一篇blog中,我们将sonar几个需要的环境都搭建好了,包括sonar的服务器,sonar runner,sonar的javascript插件.现在我们就来讲如何自定义JS扫描规则. 实际上有3 ...
- 【转】SonarQube配置自定义的CheckStyle代码规则
原文地址:https://www.jianshu.com/p/ff1d800885ce 惯例第一步肯定是SonarQube的安装与运行配置了,但这部分不在本文主题内,网上一搜一大把,这里就不讲了,大家 ...
- SonarQube中三种类型的代码规则
https://www.cnblogs.com/guoguochong/p/9117829.html 1.概述SonarQube(sonar)是一个 开源 平台,用于 管理 源代码的 质量 . Son ...
- vue 项目 webstrom IDE格式化代码规则遵循eslint设置
首先vue-cli生成了一个项目,开启了eslint的检测, 但是根据webstorm的快捷格式化代码 ctrl+alt+L会造成eslint报错. 解决办法一: 编辑器打开文件 首先,在编辑器里面要 ...
- Eslint 能自动格式化代码,为什么还要用 Prettier?
ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...
- 利用Sonar定制自定义JS扫描规则(三)——SSLR JavaScript Toolkit 使用说明
在上一篇blog中讲了在sonar中如何新增自定义的JS规则,这里面比较难的地方是XPath语句的编写,而要编写正确的XPath语句,首先要拿到语法的AST,下面我们就来介绍如何使用SSLR Java ...
随机推荐
- ASP.NET 5应用是如何运行的(3)
ASP.NET 5应用是如何运行的(3) 设置自定义的入口程序体现应用本身与应用托管之间的分离,它使我们可以创建独立于托管环境的应用,并根据需要寄宿于任何一个我们希望的宿主程序下,对于Web应用来说这 ...
- Visual Studio 2015 & C#6.0 试用报告,持续更新。
昨天早上看到了.net开源的消息,我是非常兴奋的,毕竟局限于Windows的.NET经常被人唾弃.VB暂且不提,C#常年被人指责跨平台性不佳,我也是无能为力.即使有Mono等第三方跨平台工程,.NET ...
- SQL面试题1
SQL面试题 Sql常用语法 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言 ...
- JSON之FastJson
FastJson是什么? 从网上查到--- 官网地址:http://code.alibabatech.com/wiki/display/FastJSON/Overview(已关闭) FastJSOn是 ...
- FileOutputStream字节输出流和FileInputStream输入流(切记:out是输出到本地中,in是输入到程序中)这里介绍大文件和小文件的读取方式
//FileOutputStream public class FileOutputStreamDemo { /**字节流:适用于任何文件,以字节为单位,进行读写操作 *字节流操作步骤: *1.创 ...
- [转]【Android】9-patch图片以及例子说明
1.何为9-patch? NinePatch图片以*.9.png结尾,和普通图片(png图片)的区别是四周多了一个边框(如下图所示): 采用NinePatch图片做背景,可使背景随着内容的拉伸(缩小) ...
- 代码阅读软件kscope源码安装指导
安装 kscope-1.6.2 1. ./configure --without-arts --prefix=/soft/kscope-1.6.2 (I customize the installi ...
- 使用UpdatePanel控件
使用UpdatePanel控件(二) UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编 ...
- 【WCF系列二:如何调用WCF服务】WCF入门教程(图文)VS2012
上一遍到现在已经有一段时间了,先向关注本文的各位“挨踢”同仁们道歉了.小生自认为一个ITer如果想要做的更好,就需要将自己的所学.所用积极分享出来,接收大家的指导和吐槽.网上也有很多WCF相关的教程, ...
- linux下的中文编码问题
很多linux的初学者都会碰到这样一个问题:把windows下的文档拷到linux系统,会出现乱码!其实这涉及到中文编码的问题.linux系统默认的是统一码(utf8).而如果你的文件是big5,显然 ...