ESLint最初是由 Nicholas C. Zakas 于2013年6月创建的开源项目,它的目标是提供一个插件化的JavaScript代码检测工具。我从去年七月份开始被动接触它,到现在过去一整年。最初使用ESLint的时候,编辑器报红一片,写好的代码还不能提交,心中不免有几只羊驼奔腾而过,而到如今不用ESLint,写程序的时候完全没有快感。
在我看来,ESLint是一个代码规范的工具,它能约束你代码的风格,让你写出一手漂亮易读的代码,你不用再问,if 后面要不要空格,花括号需不需要换行等等问题,这在一个多人开发的项目中尤为重要:不同的开发人员有不一样的编码风格,如果不加以约束,一段代码可能展现出几种不同的编码风格,不利于其他人员的维护扩展,如果是在一个流动性很大的团队里,代码规范更加重要。不过现在有不少团队仍然觉得这都是小问题,其实任何影响效率的问题都是大问题。
写程序好比种庄稼,考虑到将来的收成,那就必须要考虑当下农作物是否茁壮,ESLint正好是这把金坷垃。我们团队还没用上ESLint,因此花了一点时间将规则整理了一下,并打成了一个包。这项工作主要的时间花费在整理规则上,并没有任何难度。
ESLint 4.0的规则主要包含一下几个方面:
Possible Error,可能性错误相关
Best Practices,最佳实践相关
Stcict Mode,严格模式和严格模式指令相关
Varables,变量声明相关
Node.js & CommonJS,关于Node.js或在浏览器中使用CommonJS
Stylistuc Issues,代码风格相关
ES6
Deprecated
Remove
8,9的规则已经被替换或者被删除了,没必要花时间整理了,参照eslint-config-airbnb包结构如下:
|————rules | |————errors.js | |————es6.js | |————node.js | |————practices.js | |————strict.js | |————style.js | |————practices.js | |————variales.js |————test |————index.js |————package.json
index.js:
module.exports = { env: { node: true }, extends: [ './rules/errors.js', './rules/es6.js', './rules/node.js', './rules/practices.js', './rules/strict.js', './rules/style.js', './rules/variales.js' ].map(require.resolve) };
配置完规则后,publish到npm上,就可以在自己的项目中使用了,用法也很简单,引入依赖:
npm --save-dev eslint npm --save-dev eslint-config-alchemy@latest
接下来在项目中配置eslint就可以了,例如配置 .eslintrc.yml :
env: node: true browser: true, extends: alchemy
打成包的规则也可以在其他项目中使用了,不用再手动复制粘贴了。自己也花了些时间整理了一下规则,下个阶段会在公司团队中使用:eslint-config-alchemy 。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。