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的get和set使用示例
Feb 20 Javascript
Vue2.0 UI框架ElementUI使用方法详解
Apr 14 Javascript
JS触摸事件、手势事件详解
May 04 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
Node.js中流(stream)的使用方法示例
Jul 16 Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
May 13 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
详解JavaScript数据类型和判断方法
Sep 04 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python多线程并发实例及其优化
2019/06/27 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
幼儿园保育员责任书
2014/07/22 职场文书
校园音乐节目广播稿
2015/08/19 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
python编写函数注意事项总结
2021/03/29 Python
整理Python中常用的conda命令操作
2021/06/15 Python
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android