webpack项目使用eslint建立代码规范实现


Posted in Javascript onMay 16, 2019

首先当然是新建一个项目了。假设项目已经建好了,下面开始配置

1. 安装eslint

如果你还没有全局安装 eslint ,第一件事当然是安装 eslint

npm i -g eslint

2. 初始化 eslint

eslint --init

这个命令会生成一个 .eslintrc 的文件,有几种形式。选自己习惯的形式就行,我的生成的是一个 .eslintrc.js 文件,如下:

module.exports = {
 "extends": "standard"
};

然后就可以简单的lint某个文件了:

eslint yourfile.js

在项目里新添加 eSLint

然后找到 package.json ,把ESLint相关的依赖加进去,当然一个个安装也是可以的,只要你不嫌麻烦

"babel-eslint": "^7.1.1",
"eslint": "^3.19.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^3.0.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",

执行 npm install 就好了

修改默认规则

关于 eslint 配置文件的详解,可以点击这里查看,这里只简单说下eslint规则详情

extends

继承某个已配置好的规则,从某个现有的规则上进行扩展。一般比较流行的eslint规则有三种:Google 标准、airbnb标准、standard标准。

Google 标准安装

npm install eslint eslint-config-google -g

airbnb标准安装

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标准安装

Standard标准,它是一些前端工程师自定的标准。

npm install eslint-config-standard eslint-plugin-standard eslint-plugin-promise -g

rules

eslint 启用的规则列表。你可以重写 eslint 的规则,定义级别:

module.exports = {
 rules: {
  'no-console': 1
 }
};

左边是规则,右边是级别。1为警告,2为报错,0为关闭。 规则详情请参考这里

React使用eslint

1. 安装 eslint-plugin-react

npm i eslint-plugin-react

2. 修改 .eslintrc.js

修改 .eslintrc 的代码:

module.exports = {
 "extends": "standard",
 "env": {
  "browser": true,
  "es6": true,
 },
 "parser": "babel-eslint",
 "parserOptions": {
  "ecmaFeatures": {
   "experimentalObjectRestSpread": true,
   "jsx": true
  },
  "sourceType": "module",
  "ecmaVersion": 2018
  },
  "plugins": [
  "react"
  ],
}

参考文章:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS中setTimeout()的用法详解
Apr 14 Javascript
自己使用js/jquery写的一个定制对话框控件
May 02 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
js实现楼层导航功能
Feb 23 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
Apr 13 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 Javascript
Vue.js 踩坑记之双向绑定
May 03 Javascript
JS实现倒计时图文效果
Nov 17 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 Javascript
Postman动态获取返回值过程详解
Jun 30 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
JavaScript 中for/of,for/in 的详细介绍
Nov 17 Javascript
Vue项目中使用jquery的简单方法
May 16 #jQuery
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 #Javascript
详解vue2.0模拟后台json数据
May 16 #Javascript
详解Vue-Router源码分析路由实现原理
May 15 #Javascript
微信小程序select下拉框实现效果
May 15 #Javascript
详解js常用分割取字符串的方法
May 15 #Javascript
elementUI table表格动态合并的示例代码
May 15 #Javascript
You might like
php实现遍历多维数组的方法
2015/11/25 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
JavaScript 变量基础知识
2009/11/07 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
Python探索之URL Dispatcher实例详解
2017/10/28 Python
TensorFlow如何实现反向传播
2018/02/06 Python
pandas 对每一列数据进行标准化的方法
2018/06/09 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
七年级历史教学反思
2014/02/05 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL