赞
踩
在团队协作中,为避免低级 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 主要有以下特点:
ESLint 已经宣布支持 JSX,不过目前为 alpha 版本,正式版发布之前可以先使用 eslint-plugin-react 替代。
npm install eslint -g
.eslintrc
文件 放在项目根目录 {
"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"
}
}
.eslintignore
配置规则与 .gitignore
一样#井号是注释 根据自己的项目需要进行忽略
# 如果 .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指出的代码问题.
输入 eslint .
输入 eslint . --fix
http://eslint.org/docs/rules/ 带小扳手的规则都可以自动修复.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。