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 相关文章推荐
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
Feb 04 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
May 03 Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
微信小程序icon组件使用详解
Jan 31 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
深入koa-bodyparser原理解析
Jan 16 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
React冒泡和阻止冒泡的应用详解
Aug 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
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
PHP输出日历表代码实例
2015/03/27 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
取得元素的左和上偏移量的方法
2014/09/17 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
python中list循环语句用法实例
2014/11/10 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
python 字典访问的三种方法小结
2019/12/05 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
python mock测试的示例
2020/10/19 Python
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
最新的互联网创业计划书
2014/01/10 职场文书
三查三看党性分析材料
2014/02/18 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
活动总结书
2014/05/08 职场文书
领导工作表现评语
2015/01/04 职场文书
合作合同协议书范本
2015/01/27 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Oracle用户管理及赋权
2022/04/24 Oracle