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 相关文章推荐
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
对node.js中render和send的用法详解
May 14 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
用Vue.js方法创建模板并使用多个模板合成
Jun 28 Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
微信小程序(订阅消息)功能
Oct 25 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 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
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
vuex的简单使用教程
2018/02/02 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
一套软件测试笔试题
2014/07/25 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
九年级体育教学反思
2014/01/23 职场文书
小学教师国培感言
2014/02/08 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
初中学生期末评语
2014/04/24 职场文书
2016春节慰问信范文
2015/03/25 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript