一、前言
本文主要针对编辑器是sublime的vue项目进行eslint代码规范。
Javascript 是一门弱类型语言,所以语法检查变得尤为重要。虽然有很多前端IDE开发工具,可以很好地帮助我们提示在编写时的错误,但是大多数开发者还是使用的像 Sublime Text、Visual Studio Code 之类的轻量级编辑器,这导致在开发中很容易出现各种错误,比如单词拼写错误,漏掉了括号等。而且每个人的代码编写习惯也不一样,因此有的项目的代码格式千差万别,比如 缩进空格数,有的习惯4个,有的习惯2个,这也导致项目维护起来越来越麻烦,遇到错误也很难定位。因此对 Javascript 进行语法检查的工具应运而生,目前 ESLint 使用最为广泛。这篇将讲解如何将 ESLint 集成到我们的项目中。
二、实现过程
1. **sublime text 3 的安装**
1.1 sublime text 3的安装,这个网上自行查找安装方法
1.2 sublime 相关eslint的插件安装,sublimelinter,sublimelinter-eslint
2. vue项目的创建
2.1 按照网上提供的方案安装,这里采用的是 “ vue init webpack ”的安装方式,这个会提示安装eslint即选择何种代码规范(这里选择airbnb-base)
3. **npm安装eslint相关插件**
3.1 vue-plugin-vue/html
3.2 vue-eslint-parser
3.3 babel-eslint
3.4 airbnb-base (代码规范)
4. **配置方案**
本文主要通过配置 ***“.eslintrc.js”*** 实现eslint的代码规范要求。
ESLint 具有高可配置行,这就意味着你可以根据项目需求定制代码检查规则。
ESLint 的配置方式可以有以下两种方式:
--**文件注释:**在 Javascript 文件中使用注释包裹配置内容。
--**配置文件(推荐):**在项目根目录下创建包含检查规则的 .eslintrc.* 文件。
三、sublime text 3 的安装
1. sublmie的安装
可以参考如下地址进行安装
https://blog.csdn.net/wxl1555/article/details/69941451
2. eslint的sublmie插件
sublimelinter,sublimelinter-eslint
四、创建VUE项目
通过使用命令创建vue项目 :
`
vue init webpack // 初始化安装VUE项目
project name // 输入项目名称
project description // 输入项目说明
author // 输入作者
Vue build // 运行环境
Install vue-router
Use ESLint to lint your code (Yes/No) //选择YES,安装eslint插件
(选择代码规范airbnb)
Set up unit tests (Y/N)
....
五、npm安装eslint相关插件
在项目目录下,通过使用npm命令安装eslint相关插件
-
airbnb-base (代码规范)
目前比较流行airbnb公司的代码规范,目前主要使用“air-base”,
安装依赖:npm install eslint eslint-config-airbnb-base eslint-plugin-import eslint-plugin-vue --save-dev
你也可以根据自己需要,到eslit-aribnb安装地址https://www.npmjs.com/package... 进行安装。
如果使用vue项目安装方式可以选择这个规范 - babel-eslint
babel-eslint 解析器是对babel解析器的包装使其与ESLint解析 - vue-eslint-parser
此解析器主要是针对vue文件的template的vue标签进行验证 - eslint-plugin-vue
也是针对vue文件的内容进行验证,不能和 eslint-plugin-html放在配置文件中,否则至少放在此插件后面。
六、配置方案
配置文件内容如下,可以根据自己的要求进行更改:
-
.eslintrc.js 文件配置内容
airbnb的规范虽然比较成熟了,但是每个人都有一些自己的需求,可以按需修改或增加一些规则// https://eslint.org/docs/user-guide/configuring module.exports = { root: true, parser: "vue-eslint-parser", parserOptions: { "ecmaVersion": 6, "parser": "babel-eslint", "sourceType": "module", "allowImportExportEverywhere": false }, env: { browser: true, }, // 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. extends: ['plugin:vue/strongly-recommended', 'airbnb-base'], // required to lint *.vue files plugins: [ 'vue', 'vuefix', ], // check if imports actually resolve settings: { 'import/resolver': { webpack: { config: 'build/webpack.base.conf.js' } } }, // add your custom rules here rules: { // don't require .vue extension when importing 'import/extensions': ['error', 'always', { js: 'never', vue: 'never' }], 'linebreak-style': 'off', 'import/no-unresolved': 0, 'import/no-dynamic-require': 'off', 'max-len': [0, 120, 2], 'space-before-function-paren': ["error", { "anonymous": "never", "named": "always", "asyncArrow": "always" }], // disallow reassignment of function parameters // disallow parameter object manipulation except for specific exclusions 'no-param-reassign': ['error', { props: true, ignorePropertyModificationsFor: [ 'state', // for vuex state 'acc', // for reduce accumulators 'e' // for e.returnvalue ] }], // allow optionalDependencies 'import/no-extraneous-dependencies': ['error', { optionalDependencies: ['test/unit/index.js'] }], // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', // 禁止使用 console 来调试程序,在运行 npm run myEslint 时,命令行不会输出 no-console 警告 'no-console': 'off', }
}
-
package.json文件配置
在此文件的scripts中添加一行eslint验证执行命令"scripts": { "myEslint": "eslint --ext .js,.vue src" },
当然你也可以全局安装以上依赖,这样你可以直接运行 eslint --ext .js,.vue src 命令。
Ok, 配置好了~
命令行运行 npm run myEslint
你会发现检查出一堆错误,不要方,输出的错误说明的非常明显,只需要根据错误提示行号去检查,然后 根据规则更改就行了。
上面的命令中 --ext 参数就是用来指定需要检查的扩展名的文件,src 就是指定检查的目录。
七、 总结
在vue项目上使用ESLint实际上还算相对简单的,但是对于什么都是半生半熟的知识技能的人来说还是花了点时间。
eslint无论是安装还是配置,实际上还算是比较人性化的。
想要成为一名优秀的程序员,规范化的代码风格格外重要,除了能降低代码出错率,还在代码的可读性上非常有帮助,另外代码注释对于代码的可读性也是必不可少的。
让eslint成为你编写代码的好帮手吧。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。