ESLint 简介 官网 http://eslint.org/

在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。

在以前的项目中,我们选择 JSHint 和 JSCS 结合使用,WebStorm 等开发环境已经支持这些工具,使用起来很顺手。然而,最近使用 React JSX 语法时,却遇到了问题:JSHint 不支持 JSX 语法。虽然有 JSXHint 这样的 JSHint 衍生工具,但个人并不喜欢这样的实现方式:不是以插件的形式实现,而是重新重新包装了一个工具。Nicholas C. Zakas 也不喜欢,所以有了 ESLint

原来选择 JSHint 的时候,也对比过 ESLint,基于 ESLint 在速度上比 JSHint 要慢一些,最终使用了 JSHint。现在需要 JSX 支持了,才发现 ESLint 的设计理念更符合实际需求。


ESLint 由 JavaScript 红宝书 作者 Nicholas C. Zakas 编写, 2013 年发布第一个版本。 NCZ 的初衷不是重复造一个轮子,而是在实际需求得不到 JSHint 团队响应 的情况下做出的选择:以可扩展、每条规则独立、不内置编码风格为理念编写一个 lint 工具。

ESLint 主要有以下特点:

  • 默认规则包含所有 JSLint、JSHint 中存在的规则,易迁移;
  • 规则可配置性高:可设置「警告」、「错误」两个 error 等级,或者直接禁用;
  • 包含代码风格检测的规则(可以丢掉 JSCS 了);
  • 支持插件扩展、自定义规则。 ESLint 已经宣布支持 JSX,不过目前为 alpha 版本,正式版发布之前可以先使用 eslint-plugin-react 替代。

更详细请移步 https://github.com/Jocs/ESLint_docs


webstorm 的 nodejs ESLint 环境配置

  • 首先安装ESLint
    npm install eslint -g
    webstrom 要启用 eslint自动检测,需要 eslint全局安装
  • 配置一下 .eslintrc 文件 放在项目根目录
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {
    "extends": "eslint:recommended",
    "env":{
    "node":true,
    "es6":true
    },
    "rules": {
    "semi": ["error", "always"],
    "quotes": "off",
    "no-console":"off",
    "no-unused-vars":"off",
    "no-unreachable":"off",
    "no-redeclare":"warn"
    }
    }
  • 可选配置,让eslint忽略检测的文件 .eslintignore 配置规则与 .gitignore 一样
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #井号是注释  根据自己的项目需要进行忽略
    # 如果 .eslintrc 开启了 env nodejs 那么 默认 node_modules是自动忽略的
    node_modules
    /node_modules/**
    *.sh
    game-server/web-server
    game-server/web-server/**
    tools
    tools/**
    test
    test/**
    game-server/purchase-server/lib/seedrandom.js
    game-server/app/staticData/data/temp/*.js
  • 打开webstorm
    选择 File | Settings | Languages & Frameworks | JavaScript | Code Quality Tools | ESLint 勾选 Enable .
  • 至此,在 webstorm内, eslint已经可以工作了. webstorm可以自动提示 eslint指出的代码问题.

如需要手动检查所有代码的问题 ,可以打开 webstorm的 terminal,

输入 eslint .

如需要自动修复一些不规范的代码问题 ,例如 没有分号的问题,可以

输入 eslint . --fix
http://eslint.org/docs/rules/ 带小扳手的规则都可以自动修复.

感谢您的阅读,本文由 smallwhite's Blog 版权所有。如若转载,请注明出处:smallwhite's Blog(https://smallwhite.ml/pub/uncategorized/webstorm-nodejs-eslint-jian-dan-pei-zhi.html
nodejs 捕获 promise 未处理的 reject
tj大神的 co库.优雅的解决 nodejs callback无限嵌套(回调地狱)问题