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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
javascript禁制后退键(Backspace)实例代码
Nov 15 Javascript
javascript实现十秒钟后注册按钮可点击的方法
May 13 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
XML、HTML、CSS与JS的区别整理
Feb 18 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
JS框架之vue.js(深入三:组件1)
Sep 29 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
Apr 05 Javascript
Javascript实现运算符重载详解
Apr 07 Javascript
node实现分片下载的示例代码
Oct 17 Javascript
angular4中引入echarts的方法示例
Jan 29 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 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
一个分页的论坛
2006/10/09 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
php select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
Python去除字符串两端空格的方法
2015/05/21 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
python中with用法讲解
2020/02/07 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python开发入门——set的使用
2020/09/03 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
六个一活动实施方案
2014/03/21 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
节能宣传周活动总结
2014/05/08 职场文书
领导欢迎词致辞
2015/01/23 职场文书
2015入党自荐书范文
2015/03/05 职场文书
2016关于学习党章的心得体会
2016/01/15 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android