原文链接: atom 配置 eslint 使用 Google 规范 格式化 js 文件
上一篇: Base64 编码
下一篇: cmder 安装
eslint官方提供了3种预安装包:
-
Google标准
执行安装:
npm install eslint eslint-config-google -g
-
Airbnb标准,它依赖eslint, eslint-plugin-import, eslint-plugin-react, and eslint-plugin-jsx-a11y等插件,并且对各个插件的版本有所要求。
你可以执行以下命令查看所依赖的各个版本:
npm info "eslint-config-airbnb@latest" peerDependencies
你会看到以下输出信息,包含每个了每个plugins的版本要求
{ eslint: '^3.15.0', 'eslint-plugin-jsx-a11y': '^3.0.2 || ^4.0.0', 'eslint-plugin-import': '^2.2.0', 'eslint-plugin-react': '^6.9.0' }
知道了每个plugins的版本要求后,代入以下命令执行安装即可使用:
npm install eslint-config-airbnb eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# -g
-
Standard标准,它是一些前端工程师自定的标准。
执行安装:
npm install eslint-config-standard eslint-plugin-standard eslint-plugin-promise -g
ESLint是一个Javascript静态检查工具,它可以帮你养成良好的编程习惯,使你的javascript代码达到国际化的水准。ESLint是所有Javascrpt静态检查工具里最晚诞生的一个,之前还曾经有过JSLint以及JSHint等工具,但JSLint和JSHint都是用的一套标准,在目前这个前端技术飞速发展的时代已经显得有点落伍。ESLint的好处是既提供了国际大厂的标准,同时又给了你自定义标准的可能性。ESLint的推荐设置方式是按项目设置,但是如果我们有很多个不同的javascript项目的话,一个一个去设置未免太麻烦,所以在这里介绍的是全局设置方法,一次设置,所有项目全部采用同一标准。
首先,在atom中安装linter插件和linter-eslint插件。安装完成之后,linter-eslint的缺省设置有2个地方需要修改:
-
把
Disable when no ESLint config is found
的对钩去掉。这个选项的意思是说:如果你的javascript项目文件夹中没有.eslintrc这样的配置文件的话,那么ESLint就不起作用。在这里,我们要设置为全局lint,不需要在每个javascript文件夹中包含.eslintrc文件,所以要把它去掉,否则由于我们的项目文件夹中没有.eslintrc文件,ESLint会不起作用。 -
把
Use global ESLint installation
的对钩勾上。因为我们使用的是全局的ESLint安装包。
下面,开始安装ESLint:
-
npm install eslint -g
ESLint是通过npm安装的,这里的-g选项代表全局,也就是说它不会把ESLint的可执行文件安装在你的项目文件夹或者说当前文件夹下。如果你没有设置这个-g选项的话,它会在你当前文件夹下安装ESLint可执行文件,那样就不是全局安装了。后面我们所有安装包都要用使用这个-g选项 -
eslint -v
安装完成之后,你可以先执行一下eslint -v
这个命令来看一下eslint是否已经安装成功了,如果没有的话,你需要反复检查,直到确保eslint安装已经成功为止。 -
关于
eslint --init
可以不必执行,它主要的作用是在你当前文件夹下生成.eslintrc文件,但同时也会把eslint在你当前文件夹下重新安装一遍,并且如果你使用包的话,它还会要求必须要有package.json文件,总之会很麻烦。但如果你是第一次使用的话,我建议你可以执行一下试试,它主要提供3种预安装包:Google标准、Airbnb标准和Standard标准。这3个标准里,Google就是Google公司的标准,Airbnb是Airbnb公司的标准,Standard就是一些前端工程师自定的标准。目前来看,公认的最好的标准是Airbnb标准(互联网发展日新月异,永远是年轻人颠覆老年人,连Google都老了)。它对于ES6要求最严格,比如禁止使用var定义变量,必须使用let或者const等等。既然采用最新标准,当然就让你的代码一次性向最高标准看齐,省得以后麻烦。 -
npm install eslint-config-airbnb -g
精彩的重头戏来了:看到漂亮的airbnb了吗?我们就里就是要安装Airbnb的标准了。注意-g,还是全局化安装。 -
npm install eslint-plugin-jsx-a11y -g
a11y是accessibility(无障碍环境)的缩写,从第一个字母a到最后一个字母y,中间一共是11个字母,所以就叫a11y了,类似于i18n表示internationalization(国际化)一样。JSX主要是React会用到,虽然我们的项目里可能并不会用React,但是这个Airbnb标准必须要用到它,所以必须安装。 -
npm install eslint-plugin-import -g
同上,Airbnb标准必需。 -
最后,编写我们自己的全局.eslintrc文件:
vi ~/.eslintrc.json
安装eslint
配置全局路径以及保存时格式化代码
vue-cli的一个配置文件,使用ecm6版本,关闭no-new,因为vue有时候使用new Vue()的写法
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
ecmaVersion: 6,
},
env: {
browser: true,
},
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
'airbnb-base'
],
// required to lint *.vue files
plugins: [
'vue'
],
// add your custom rules here
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-new':'off'
},
}
//
//
// module.exports = {
// // airbnb
//
// 'extends': 'airbnb-base',
// // 'extends': 'google',
//
//
// 'rules': {
// 'indent': ['error', 4],
// },
// 'parserOptions': {
// 'ecmaVersion': 6,
// },
// rules: {
// // allow async-await
// 'generator-star-spacing': 'off',
// // allow debugger during development
// 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// 'no-new':'off'
// },
// };
VS使用airbnb 规范
在VSCode下使用ESLint,收到提示:
Cannot find module 'eslint-config-airbnb-base' Referenced from .eslintrc.js
.eslintrc.js
很简单,就是默认配置好的:
module.exports = {
extends: "airbnb-base",
env: {
browser: true,
node: true
},
};
我是这样做的:
安装最新的ESLint
npm install eslint -g
安装 eslint-config-airbnb-base
npm install eslint-config-airbnb-base -g
安装 eslint-plugin-import
npm install eslint-plugin-import -g
重启VSCode(非常重要)。再试试,或许问题就没有了。