jshint 检测工具不够灵活下,道格拉斯(何许人也?json创造者,javascript重要任务,犀牛那本书就是他写的)。

文档地址:

安装

利用npm全局安装eslintpre-commit 。建议这两个全局安装,可能别人检测代码工具不一样,尤其webstrom是自带检测代码功能。

npm i -g eslint pre-commit

pre-commit,在git commit提交代码的时候,希望能够执行代码检测,不要把错误的代码上传到项目仓库(说直白点,谁写的错误代码,在提交时被检查出来,你必须解决,不解决不上传到。从而杜绝了他人修改你的代码)。

pre-commit 主要的配置是都在package.json

  1. scripts 定义你希望执行的命令。

    这里我们定义一个用eslint检测你开发代码,如下:
"scripts": {
"lint": "eslint src/**"
}
  1. 在定 pre-commit 的中
"pre_commit": [
"lint"
]

配置文件

这里都是按照推荐的方法来配置的(务必一定要看官网文档说明,很多语法支持都在官网有说明,google和百度文档不是一定是eslint最新最稳定版本。)

  1. 生成配置文件
eslint --init

在项目根目录下会生成 .eslintrc.js

  1. 执行环境的配置
module.exports = {
env : {
"node": true,
"brower": true,
"es6": true
}
}

"es6": true 开启es6全局变量,但并没有支持es6的新语法类型的支持,要开启需要在parserOptions中添加"ecmaVersion": 6

{
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"rules": {
"semi": 2
}
}
  1. 解析器parser,这里是使用babel-eslint

先全局安装babel-eslint

npm i -g babel-eslint

修改配置参数:

{
"parser": "babel-eslint",
}
  1. jsx语法支持,安装eslint-plugin-react
npm install eslint-plugin-react --save-dev

配置参数

 "extends": [
"eslint:recommended",
"plugin:react/recommended"
]
  1. rule配置,这是elsint的核心,这个看文档
  • "off" 或 0 - 关闭规则
  • "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
  • "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)

这里以no-console为例子说明。

"rules": {
"no-console": [
"error",
"allow": ["warn","error"]
]
}

这段规则意思禁止使用console,但出console.warnconsole.error

但又有时想用console.log,可以在js文件写入相关注释。

/*eslint-disable no-console*/
console.log('u can use console.log!');
/*eslint-enable no-console*/
console.log('u must not use console.log!');

编辑配置

像sublime、atom默认是没有代码检测的,是用webstorm的知道,那种代码及时检错功能非常方便。那么sublime和atom也可以配置相应及时检错(webstorm是含有的,为什么不使用webstrom?那是因为我对sublime、atom上的沉默成本太大)。

sublime配置

  • sublimeLinter
  • sulimeLinter-contrib-eslint

设置,要在sublimeLinter用户设置,添加如下内容:

{
"user": {
"paths":{
"window": [
"c:/User/userName/AppData/Roaming/npm/eslint.exe"
]
}
}
}

window根据自身的全局安装eslint情况而定。

atom配置

  • linter
  • atom-eslint

安装即可,插件的名字我记不清楚了,但是按照这样搜索,找到下载次数最多安装,是可以安装到对插件(我大多时间是使用sublime,很容易忽视atom,但是使用起来也没什么障碍)。

ps: 具体细节首要是查文档。

我犯了一个严重的错误,项目初始化一定要npm init,否则会出现一些某名奇妙的错误。

eslint 代码检测工具的更多相关文章

  1. 基于git diff进行的eslint代码检测

    缘起 在项目中, 通常都会使用代码检测工具来规范团队的代码风格, 比如eslint.随着代码的不断增加, eslint进行代码检测的时间也越来越久.每次检测的时候, 需要检测的文件和实际检测的文件极度 ...

  2. StyleCop(C#代码检测工具)

    StyleCop(C#代码检测工具)   一.StyleCop是微软的一个开源的静态代码分析工具,检查c#代码一致性和编码风格. 二.下载地址   http://stylecop.codeplex.c ...

  3. python 代码检测工具

    对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...

  4. Jenkins整合SonarQube代码检测工具

    借鉴博客:https://blog.csdn.net/kefengwang/article/details/54377055 上面这博客写得挺详细的,挺不错.它这个博客没有提供下载的教程,这个博客提供 ...

  5. c++代码检测工具

    cppcheck是一款静态代码检查工具,可以检查如内存泄漏等代码错误,使用起来比较简单,即提供GUI界面操作,也可以与VS开发工具结合使用. 1.安装 一般会提供免安装版,安装完成后将cppcheck ...

  6. 恶意代码检测工具 -- Mathematics Malware Detected Tools

    Mathematics Malware Detected Tools 重要:由于缺少测试数据,部分结论可能不正确.更多更准确的结论,还需要进行大量实验. 概述 mmdt(Mathematics Mal ...

  7. 阿里java代码检测工具p3c

    阿里在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件! 该插件由阿里巴巴P3C项目组研发.这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把<阿里巴巴 ...

  8. 关闭vue的eslint代码检测和WebStorm的代码检测

    1. 在vue项目中 bulid > webpack.base.conf.js 中: 如图,在rules规则中有一条规则是校验代码的,也就是红框2那行,要取消可以直接注释掉这行,或者把红框1的函 ...

  9. JS代码检查工具ESLint

    前面的话 ESLint是一个JavaScript代码静态检查工具,可以检查JavaScript的语法错误,提示潜在的bug,可以有效提高代码质量,维持前端团队高度一致的编码风格.ESLint不但提供一 ...

随机推荐

  1. Vue.js常用指令:v-on

    一.v-on指令 v-on指令在Vue.js中用来处理对应的事件.用法: v-on:事件类型="函数体" 例如:点击按钮的时候执行play事件 <button v-on:cl ...

  2. html5中的input和label写法与取值

    demo 效果图如上 label是html5特有的,是定义 input 元素的标注.凡是input前面要有个label标识下,label和input真是一对好兄弟啊.<label> 标签的 ...

  3. python通过input()函数输入的内容是什么类型

    说明: 通过input()函数,可以从标准输入读取内容,那么读到的内容是什么类型呢. 通过type()函数可以进行判断,另外,通过input()函数的官方解释,从标准输入读取一个字符串.所以,应该是字 ...

  4. [Laravel] 03 - DB facade, Query builder & Eloquent ORM

    连接数据库 一.Outline 三种操作数据库的方式. 二.Facade(外观)模式 Ref: 解读Laravel,看PHP如何实现Facade? Facade本质上是一个“把工作推给别人做的”的类. ...

  5. 8 -- 深入使用Spring -- 5... Spring 3.1 新增的缓存机制

    8.5 Spring 3.1 新增的缓存机制 Spring 3.1 新增了一种全新的缓存机制,这种缓存机制与Spring容器无缝地整合在一起,可以对容器中的任意Bean或Bean的方法增加缓存.Spr ...

  6. 170829、mybatis使用oracle和mybatis中批量更新

    一.mybatis执行批量更新batch update 的方法(mysql数据库) 1.数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题 ...

  7. 面向对象。OOP三大特征:封装,继承,多态。 这个讲的是【封存】

    class Ren { private $name; private $sex; private $age; //年龄必须在18-50之间 function __constuct($v) { $thi ...

  8. linux 部分系统命令

    在网上看到一些系统命令,贴一记 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # ...

  9. Unix api

    ● 线程 进程的所有信息都被自己的线程共享,包括代码.全局内存.堆.栈.文件描述符. 线程拥有自己的信息,包括线程ID.一组寄存器值.栈.调度优先级和策略.信号屏蔽字.errno变量以及线程的私有数据 ...

  10. 品尝阿里云容器服务:5个2核4G节点使用情况记载

    使用5台2核4G非IO优化的ECS作为节点创建集群,节点操作系统是Ubuntu 16.04.2 LTS.创建后3个为mananger节点,2个为worker节点,每个节点默认会运行7个容器,其中3个s ...