ESLint
ESLint 简介
ESLint是由Nicholas C. Zakas编写的一个Javascript的验证工具,
ESLint不仅可以检验Javascript错误,也可以进行代码风格检测。
2013年6月发布第一个版本,最新版本是2015年7月24号发布的ESLint 1.0.0-rc-3。
ESLint主要有以下特点:
(1) 默认规则包含所有JSLint、JSHint中存在的规则,易迁移到ESLint
(2) ESLint相比于JSLint、JSHint,更加灵活强大,规则可配置性很高
(3) 包含代码风格检测的规则
(4) 支持插件扩展、自定义规则
ESLint在OpenStack中的应用项目
1.Horizon
2.Murano
ESLint环境搭建
1.安装NodeJS
NodeJS是一个基于Chrome JavaScript运行时建立的平台,使用V8引擎,用于方便地搭建响应速度快、易于扩展的网络后台应用。
下载地址:https://nodejs.org/download/
2.使用NPM安装ESLint
NPM的全称是Node Package Manager,类似pip,通过NPM安装Nodejs的第三方库。
执行命令:npm install eslint
3.执行eslint命令检测项目中的Javascript文件
eslint -f junit -o C:\report.xml C:\
PS: 输出文件内容格式默认为"stylish".
还包括: "compact", "checkstyle", "jslint-xml", "junit","tap".
ESLint常用配置方式
1.在文件.eslintrc文件配置,支持 JSON 和 YAML 两种语法。.eslintrc 文件YAML示例:
env: # Use jquery global variables jquery: true # If javascript is running in browser browser: true rules: # Specify whether backticks, double or single quotes should be used # http://eslint.org/docs/rules/quotes quotes: - 0 - 'single' # Require camel case names # http://eslint.org/docs/rules/camelcase camelcase: - 1 - properties: "never" # This option sets a specific tab width for your code # http://eslint.org/docs/rules/indent indent: - 2 # Mark as errors. - 2 # horizon uses 2 space indentation. globals: # allow accessing horizon horizon: false # allow accessing horizon murano: false
PS:.eslintrc 放在项目根目录,则会应用到整个项目;
如果子目录中也包含.eslintrc 文件,则子目录会忽略根目录的配置文件,应用该目录中的配置文件。
这样可以方便地对不同环境的代码应用不同的规则。
2.在package.json中配置,使用JSON语法。
{ "version": "0.0.0", "private": true, "name": "muranodashboard", "description": "Murano Dashboard", "repository": "none", "license": "Apache 2.0", "devDependencies": { "eslint": "^0.23.0" }, "scripts": { "lint": "eslint --no-color muranodashboard/static" }, "eslintConfig": { "env": { "jquery": true "browser": true } } }
ESLint代码检测示例