千里之行
始于足下

绘枫和畅

千里之行,始于足下

ESLint最初是由 Nicholas C. Zakas 于2013年6月创建的开源项目,它的目标是提供一个插件化的JavaScript代码检测工具。我从去年七月份开始被动接触它,到现在过去一整年。最初使用ESLint的时候,编辑器报红一片,写好的代码还不能提交,心中不免有几只羊驼奔腾而过,而到如今不用ESLint,写程序的时候完全没有快感。

在我看来,ESLint是一个代码规范的工具,它能约束你代码的风格,让你写出一手漂亮易读的代码,你不用再问,if 后面要不要空格,花括号需不需要换行等等问题,这在一个多人开发的项目中尤为重要:不同的开发人员有不一样的编码风格,如果不加以约束,一段代码可能展现出几种不同的编码风格,不利于其他人员的维护扩展,如果是在一个流动性很大的团队里,代码规范更加重要。不过现在有不少团队仍然觉得这都是小问题,其实任何影响效率的问题都是大问题。

写程序好比种庄稼,考虑到将来的收成,那就必须要考虑当下农作物是否茁壮,ESLint正好是这把金坷垃。我们团队还没用上ESLint,因此花了一点时间将规则整理了一下,并打成了一个包。这项工作主要的时间花费在整理规则上,并没有任何难度。

ESLint 4.0的规则主要包含一下几个方面:

  1. Possible Error,可能性错误相关

  2. Best Practices,最佳实践相关

  3. Stcict Mode,严格模式和严格模式指令相关

  4. Varables,变量声明相关

  5. Node.js & CommonJS,关于Node.js或在浏览器中使用CommonJS

  6. Stylistuc Issues,代码风格相关

  7. ES6

  8. Deprecated

  9. 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

微信公众号

Master之令咒:

带我飞

©2016-2017 Powerd by Alchemy's Spruche 鄂ICP备14020745号