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压缩利器
Feb 20 Javascript
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
javascript中使用正则计算中文长度的例子
Apr 29 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
jQuery基础知识点总结(DOM操作)
Jun 01 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
详解react-router如何实现按需加载
Jun 15 Javascript
JavaScript面向对象精要(上部)
Sep 12 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 Javascript
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
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调用mysql存储过程
2007/02/14 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
javascript常用函数(2)
2015/11/05 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python functools模块学习总结
2015/05/09 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python实现简单http服务器功能
2018/09/17 Python
python 产生token及token验证的方法
2018/12/26 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
什么是servlet链?
2014/07/13 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
营销总经理岗位职责
2014/02/02 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
企业安全生产检查制度
2015/08/06 职场文书
晚会开幕词范文
2016/03/04 职场文书
车位出租协议书范本
2016/03/19 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL