项目中使用eslint

为什么使用eslint : 为了保持代码风格的统一

在做vue项目的时候, 基本上都会使用 vue-cli 脚手架去创建一个vue 项目,里面可以选择使用eslint 代码检测,我相信大多数人都关闭了,在以前我是不用eslint 工具的,我会觉得使用很麻烦,到处都在报错。

而且需要配置很多规则,增加了开发难度。(我太low了)

但是多人合作,为了保持代码风格的统一,还是需要一套规范,让大家阅读代码的时候比较清晰,加上现在编辑器上很多插件,可以快速的帮我们格式化代码,因此使用eslint 早就是一种趋势了。

话不多说,接下来如何使用eslint 和 配置eslint。

首先需要安装eslint 的依赖包

eslint ,eslint-loader, babel-eslint 是最基本的,另外我做的是react项目 ,因此用到了 airbnb 团队的规则 (eslint-config-airbnb) 剩下的一些是 airbnb包 需要的依赖,具体的看你自己要用什么规则就装什么规则。

    "eslint-loader": "^2.1.1",
    "babel-eslint": "^10.0.1",
"eslint": "^5.12.0",
"eslint-config-airbnb": "^17.1.0",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.2",
"eslint-plugin-node": "^8.0.1",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-react": "^7.12.3",
"eslint-plugin-standard": "^4.0.0"

安装好后进入webpack.config.js 的配置文件中,配置eslint 规则

module.exports = {
module: {
rules: [
{
enforce: 'pre', // 在所有loader编译之前执行eslint检查
test: /\.(js|jsx)$/,
loader: 'eslint-loader',
exclude: [
path.join(__dirname, '../node_modules')
]
},
],
...
},
...
}
enforce配置一定要写上!需要要在所以loader编译之前去检测
test配置表示 只验证 js 和 jsx 结尾的文件
loader配置 表示使用 eslint-loader处理
exclude配置 表示不检测 node_modules 下的js 和 jsx文件 接下来需要配置具体的规则,在项目的跟目录下(或者你需要使用eslint的目录下)创建 .eslintrc的配置文件,该文件下可以配置具体规则
{
"parser": "babel-eslint",
"env": {
"browser": true,
"es6": true,
"node": true
},
"parserOptions":{
"ecmaVersion": 6,
"sourceType": "module"
},
"extends": "airbnb",
"rules": {
"semi": [0],
"no-unused-vars": [0],
"react/jsx-filename-extension": [0]
}
}

parser 是配置 eslint 的解析器

env 是配置eslint 使用的环境  brower表示 支持浏览器 环境 ,因为我的项目用到了ssr 渲染 里面用的node环境, 所以我配置 了 node: true选项

extends 是继承什么规则, 我前面有讲我是用的 airbnb团队的 eslint规则, 如果你不需要那个规则, 就可以填写 ‘standard’  使用标准规则。

parserOptions 中的 ecmaVersion 表示解析 es的版本, 我项目用的是es6 ,所以填写的是6,

rules 里面是具体的规则,可以参照官网,需要开启或者屏蔽的规则的就去这里面配置  官网 rules规则

配置好运行项目就可以检测到了。 如果某一行不需要验证,则可以在这一行加上注释     // eslint-disable-line

const NextApp = require('./app.jsx').default // eslint-disable-line

配置 .editorconfig

为什么配置.editorconfig: 解决不同运行环境,不同编辑器运行同一个项目的差异

为什么要配置.editorconfig 呢? 因为不同的编辑器在处理不用操作的时候默认方式不一致,因此需要统一操作的规范。

比如 tab 缩进有的是4格,有的是2格。  结尾换行的的时候 windows  使用的是  crlf  ,而 mac 和 linux 使用的 lf。

接下来在项目根目录下创建.editorconfig的配置文件

root = true

[*]
charset = utf-8
indent_style = space
index_size = 2
end_of_line = LF
insert_final_newline = true
tirm_trailing_whitespace = true

charset 设置 字符集为 utf-8

index_style 缩进方式使用 空格

index_size tab 缩进2个空格

end_of_line 换行方式统一为LF

insert_final_newline  保存文件时在最后新插入一行

trim_trailling_whitespace 去掉行尾的空白字符

还可以配置其他的,还是按照你需要的规则配置。

拜了个拜!

使用 eslint 和 editorconfig 规范代码的更多相关文章

  1. react 使用 eslint 的三种代码检查方案总结,多了解点--让代码更完美....

    1.介绍 ESLint 是一个可扩展,每条规则独立,被设计为完全可配置的lint工具. 可以用来检测代码,避免低级错误 可以用来规范代码的开发风格,统一代码习惯. 2.为什么使用 ESLint ? 统 ...

  2. PHP团队 编码规范 & 代码样式风格规范

    一.基本约定 1.源文件 (1).纯PHP代码源文件只使用 <?php 标签,省略关闭标签 ?> : (2).源文件中PHP代码的编码格式必须是无BOM的UTF-8格式: (3).使用 U ...

  3. JAVA_SE基础——编码规范&代码编写规则

    这次我来给大家说明下编码规范&代码编写规则  ↓ 编码规范可以帮助程序员在编程时注意一些细节问题,提高程序的可读性,让程序员能够尽快地理解新的代码,并帮助大家编写出规范的利于维护的Java代码 ...

  4. Eslint 能自动格式化代码,为什么还要用 Prettier?

    ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...

  5. 按照eslint的规则格式化代码

    1.下载eslint. 2.首选项->设置,然后搜索eslint,点击在setting.json中设置.设置内容如下: "editor.codeActionsOnSave": ...

  6. 详解 ESLint 规则,规范你的代码

    在很久之前就想通过工具来规范自己的代码风格,减少程序出错的概率,如果看过我的 一个前端程序猿的Sublime Text3的自我修养 ,这篇博客的朋友,肯定知道在当时我使用 SublimeLinter- ...

  7. eslint推荐编码规范和airbnb推荐编码规范

    Eslint规范 for 循环禁止使用无限循环(这个非默认推荐) // bad for (var i = 0; i < 10; i--) { } for (var i = 10; i >= ...

  8. vscode+eslint自动格式化vue代码的方法

    前言 使用vscode开发vue项目的时候,为了编码格式的统一化,使用eslint规范进行格式化.此时通过eslint插件可以实现对vue代码的自动格式化. 使用方式 在vscode的插件模块处,搜索 ...

  9. 作业三 代码规范 代码复审 PSP

    1.是否需要有代码规范(5分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 反对.我并不认为代码规范都 ...

随机推荐

  1. openfire常见几类插件开发研究与总结

    openfire 的插件可以访问所有openfire的API,这给我们的插件实现提供了巨大的灵活性. 以下介绍几类比较常用的插件集成方式: 基于源码XMPP协议的插件 比如:IQHandler,常用来 ...

  2. lnmp环境网页访问慢排查思路

    1.首先看每个服务器的负载情况 2.若各个服务器负载不高 首先查看是不是负载均衡服务器问题相接访问web服务看是否慢,若也慢则查看是不是访问动态页面慢,创建一个静态页面访问试试,若不慢则是动态页面问题 ...

  3. WPF 基础到企业应用系列5——WPF千年轮回 续前缘

    一.摘要 首先非常高兴这个系列能得到大家的关注和支持,前端时间身体状况不适,所以暂停了更新,对此表示非常抱歉,以后会逐渐加快进度.只是因为这是一个非常长的系列,我也想把它写好,所以以后也会慢慢来,在这 ...

  4. 重读金典------高质量C编程指南(林锐)-------第四章 表达式和基本语句

    4.1 运算符的优先级   规则:如果代码行中的运算符比较多,可用括号确定操作顺序.if((a|b)&&(a&c)) 4.2   复合表达式 规则:不要编写太复杂的复合表达式 ...

  5. Leetcode Array 11 Container With Most Water

    题目: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, a ...

  6. CocoaAsyncSocket 文档1:Socket简单介绍

    前言 CocoaAsyncSocket是 IOS下广泛应用的Socket三方库,网上相关样例数不胜数.这里我就不直接上代码,本文由B9班的真高兴发表于CSDN博客.另辟一条思路:翻译SocketAsy ...

  7. 单点登录系统cas资料汇总

    http://jasig.github.io/cas/4.0.x/index.html           主页 https://jasigcas.herokuapp.com              ...

  8. hdu 2814 Interesting Fibonacci

    pid=2814">点击此处就可以传送 hdu 2814 题目大意:就是给你两个函数,一个是F(n) = F(n-1) + F(n-2), F(0) = 0, F(1) = 1; 还有 ...

  9. sprint3 【每日scrum】 TD助手站立会议第六天

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 在添加日程类型处添加了选择闹钟间隔多长时间相应,并写了闹钟运行的类 在日历各个事件上都增加闹钟显示,并将数据传递给日程和时间表 感觉跟楠哥在设 ...

  10. ARM内核和架构

    转:深入浅谈,CPU设计原理          CPU的内部架构和工作原理 推荐一本书:编码的奥秘 一.ARM内核和架构 ARM产品越来越丰富,命名也越来越多.很多朋友提问: ARM内核和架构都是什么 ...