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 事件对象的实现
Jul 13 Javascript
jquery下实现overlay遮罩层代码
Aug 25 Javascript
子窗体与父窗体传值示例js代码
Aug 01 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
JavaScript实现鼠标点击后层展开效果的方法
May 13 Javascript
js剪切板应用clipboardData实例解析
May 29 Javascript
BootStrap表单时间选择器详解
May 09 Javascript
AngularJS 中ui-view传参的实例详解
Aug 25 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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
symfony表单与页面实现技巧
2015/01/26 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
pytorch permute维度转换方法
2018/12/14 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
2014年社区工会工作总结
2014/12/18 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang