我们先来说说ESLint是什么,能够做什么工作
官网的简介如下:
The pluggable listing utility for JavaScript and JSX.
支持插件的Javascript和JSX的代码检测工具
官网比较含蓄,似乎功能也不过如此。不过,看ESLint不能只看它本身的功能,千万要注意<插件>这个字眼。好了,和大家说说我眼中的ESLint能够做什么事情。
建议全局安装ESLint及其常用插件:
$ npm i -g aslant babel eslint-plugin-babel eslint-plugin-standard eslint-config-standard eslint-plugin-promise eslint-config-standard // babel-eslint可能会需要管理员权限,调用系统syslink来创建软链接 sudo npm i -D babel-eslint
当然如果你不想全局安装也可使用 npm -i -D
来局部安装
ESLint支持以下配置方式:
const NOOP_FN = function() {} // eslint-disable-line space-before-function-paren //单行注释,只作用于该行
const NOOP_FN = function() {} // eslint-disable space-before-function-paren // 该行以下都适用该规则
个人建议, 使用单独的eslintrc配置文件,这样别人一看代码结构就知道使用了eslint来校验代码,最好是js文件,json文件是不支持注释的。如果放在eslintConfig中而自己又喜欢尝试不同的规则设置, 则会导致 package.json 的git diff.
编辑.eslintrc.js文件如下:
module.exports = {
"env": {
"browser": true,
"es6": true
},
"extends": "standard",
"plugins": [
"standard",
"promise"
],
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"ecmaFeatures": {
}
},
"rules": {
"indent": [1, 2],
"linebreak-style": [2, "unix"],
"quotes": [1, "single"],
"semi": [ 1, "never"],
"semi-spacing": 0,
"no-extra-semi": 1,
"no-unused-vars": [ 1, { "vars": "all", "args": "none" }
],
"no-trailing-spaces": 2,
"no-console": 1
}
};
具体规则可依据自己的喜好与项目的要求来改。
推荐 plugins 设置为standard(依赖于eslint-plugin-standard插件), 然后自己再针对某个规则来单独设置覆盖.
在 package.json
文件中的scripts字段中配置如下3个属性即可:
"eslint": "eslint --format './node_modules/eslint-friendly-formatter/index.js' ./src/* "
"eslint_html": "eslint --format html ./src/* -o ./dist/eslint/index.html"
"eslint_markdown": "eslint --format './node_modules/eslint-formatter-markdown/markdown.js' ./src/* -o ./dist/eslint/index.md"
至此ESLint配置完毕,可依次执行如下命令,来输出 代码校验结果、或生成校验报告
$ npm run eslint
$ npm run eslint_html
$ npm run eslint_markdown
安装插件: SublimeLinter、ESlint-formatter两个插件:并设置SublimeLinter使用ESLint来校验:
Sublime Text --> preferences --> Package settings --> Sublime Linter --> settings - User。该按钮会打开一个配置文件,给该配置文件添加添加如下设置:
{
"user": {
"linters": {
"eslint": { "@disable":false, "args": [], "excludes": [] }
},
"show_errors_on_save": true //为true时,保存文件时,会弹出该文件所有不规范的列表及具体规则名,如下图
}
}
保存该配置文件, 即会生效。此时打开一个js文件,界面会如下:
保存js文件时,效果图如下:
Command+Shift+P: 搜索aslant
出现 ESLint Formatter: Format this file
点击确定进行该文件的格式化
格式化结果如下:
安装插件:linter、linter-eslint、eslint-fixer
三个插件, 安装完成重启Atom即可生效
Atom 中的 eslint 信息提示效果如下:
Atom 中进行 代码格式化 的操作:
Atom 中 格式化后效果:
由于个人很少使用 Webstorm ,所以在测试过程中出了不少问题,不知道是因为个人设置问题,还是Webstorm自身的问题,有兴趣的同鞋可以自己研究分享下