首先谨记 eslint的官网:  http://eslint.cn/

1 安装eslint  npm i eslint -D

2.在根目录下新建文件 .eslintrc

{
"extends":"standard" //是一个json文件,整个项目的格式,标准格式
}

3.由于是限制前端格式,所以在 client文件夹下新建文件 .eslintrc

{
"parser":"babel-eslint",//默认用哪种工具去解析 eslint代码
"env":{ //定义执行在哪些环境
"browser":true,//告诉eslint 执行环境是包含 浏览器的,否则一些 window 等变量会报错,认为没有定义过
"es6":true,
"node":true
},
"parserOptions":{
"ecmaVersion":6, // 规定使用es6版本
"sourceType":"module"//使用module方式
},
"extends":"airbnb", //继承哪种格式,airbnb是react的一种很好的格式
"rules":{ //自定义规则
"semi":[0], //不检测 分号,如果为false 则不允许写
     "react/prefer-stateless-funciton":0
}
}

4.每次在编译代码之前,都去检查eslint:

//对于 js和jsx文件,使用eslint-loader进行编译,并且要在 babel-loader前
//进行编译 enforce:'pre',放在 webpack.config.client.js 和 webpack.config.server.js
{
module:{
rules:[
{
enforce: 'pre',
test: /.(js|jsx)$/,
loader: 'eslint-loader',
exclude: [
path.resolve(__dirname, '../node_modules')
]
}
]
}
}

首先我们要安装下面的依赖 : babel-eslint 、eslint-config-airbnb 、eslint-config-standard 、eslint-loader;

其中eslint-config-airbnb 在npm上可以看到有很多其他的依赖,此外 空格+/ 可以换行:

npm i babel-eslint \
eslint-config-airbnb eslint-config-standard \
eslint-loader \
eslint-plugin-import \
eslint-plugin-jsx-ally \
eslint-plugin-node \
eslint-plugin-promise \
eslint-plugin-react \
eslint-plugin-standard -D

执行 npm run dev:cient 启动本地服务,发现报警告:

wins下是 CRLF, mac和linux 下是 LF 行末

在根目录新建文件 .editorconfig 文件:

root = true

[*]
charset = utf-8
indent_style = space //使用tab 表示空格
indent_size = 2 //
end_of_line = lf //结尾使用lf
insert_final_newline = true //如果末尾么有空行 自动加空行
trim_trailing_whitespace = true //一行结束了 末尾有空格 换行后 被删除该空格

然后在编辑器中集成进去。

如果编译后在控制台报警了,但是又不想改动,可以在出问题的代码旁加注释

import { AppContainer } from 'react-hot-loader'   //eslint-disable-line

2. 在git commit 的时候,检测代码是否符合 eslint:

安装  npm i husky -D

在 package.json 中:

{
"scripts": {
"lint": "eslint --ext .jsx --ext .js client/",
     "precommit":"npm run lint", //则每次commit 代码时 会执行这里钩子,如果正确才会提交
}
}

PS:网站左上角的小图标设置:

安装npm

npm i serve-favicon -D

server.js

const favicon = require('serve-favicon')
app.use(favicon(path.join(__dirname, '../favicon.ico')))

4. 每次修改sever.js 之后都要 重启服务: npm run dev:server

使用该插件,解决每次重启问题: npm i nodemon -D

//nodemon.json 文件

{
"restartable":"rs",//使用了配置文件
"ignore":[ //配置修改下面的代码,不需要重新启动服务
".git",
"node_modules/**/node_modules",//mode_modules 包含该文件夹下包含的 node_modules
".eslintrc",
"client",
"build"
],
"env":{
"NODE_ENV":"development",
},
"verbose":true, //输出的报错信息要详细
"ext":"js" //配置包含哪些文件修改要重启 }

对应的命令行:

{
"script":{
"dev:server":"nodemon server/server.js"
}
}

上述 Eslint 方法太麻烦,推荐使用 vscode的 ESLint插件。会根据eslintrc配置文件做检查;

或者cllient端,使用的 webpack-dev-server配置:

1 安装eslint。

2 设置 eslintrc文件

3 新增eslint-loader

{
rules:[{
test:/\.js$/,
exclude:/node_modules/,
use:['babel-loader','eslint-loader']//从右向左执行 先执行 eslint
}]
}

4 修改devServer 配置

devServer:{
overlay:true
}

在浏览器中出现弹层

webpack 配置react脚手架(三):eslint 及优化的更多相关文章

  1. webpack 配置react脚手架(六):api

    1 访问网址 https://cnodejs.org/api 可以调取api 2.//该body-parser 可以将请求的body数据,转变成 json 格式数据://express-session ...

  2. webpack 配置react脚手架

    1 react 基本js文件: import React from 'react'; import ReactDOM from 'react-dom'; import App from './App. ...

  3. webpack 配置react脚手架(二):热更新

    下面继续配置 webpack dev server    hot module replacement: 首先配置dev-server     安装     npm i webpack-dev-ser ...

  4. webpack 配置react脚手架(五):mobx

    1.  配置项.使用mobx,因为语法时es6-next,所以先配置 .babelrc 文件 { "presets": [ ["es2015", { " ...

  5. webpack 配置react脚手架(四):路由配置

    1. 由于 react-router 是集成了 react-router-dom 和 react-router-native的一起的,所以这里要使用的是 react-router-dom, 2. 安装 ...

  6. [webpack] 配置react+es6开发环境

    写在前面 每次开新项目都要重新安装需要的包,简单记录一下. 以下仅包含最简单的功能: 编译react 编译es6 打包src中入口文件index.js至dist webpack配置react+es6开 ...

  7. webpack配置React开发环境(上)

    Webpack 是一个前端资源加载/打包工具,我们部门的一条主要技术栈就是Webpack+React+ES6+node,虽然之前自己做个人项目也接触好多次Webpack,但是自己并没有研读总结过Web ...

  8. 使用webpack配置react并添加到flask应用

    学习react,配置是很痛苦的一关,虽然现在有了create-react-app这样方便的工具,但是必须要自己配置一遍,才能更好地进行项目开发. 首先要明确一个概念:react的文件必须经过编译才能被 ...

  9. 基于webpack的react脚手架

    一.前言:react的cli开发模式太过于简单,好多东西都要自己配置 二.这里有个简单的配置,可以直接上手开发(不熟悉webpack和npm的绕路),已经完成的配置如下 1:默认ejs模板 2:编译l ...

随机推荐

  1. GitToc-为你的Github仓库的Readme自动生成一个目录

    维护自己的Github仓库的时候发现Github的Readme不支持Toc目录,所以就自己写了一个小工具. 工具地址:https://github.com/Holy-Shine/GitToc 简介 如 ...

  2. IDEA遇到项目包后面出现% classes,% lines covered该怎么解决

    IDEA遇到项目包后面出现% classes,% lines covered该怎么解决 这个问题嘛,我一个同学已经问我第二遍了.这次又是他问的,所以我就写一下教程吧  出现这种问题的原因:就是你点运行 ...

  3. 虚拟机性能监控与故障处理工具(深入理解java虚拟机三)

    JDK自带的工具可以方便的帮助我们处理一些问题,包括查看JVM参数,分析内存变化,查看内存区域,查看线程等信息. 我们熟悉的有java.exe,javac.exe,javap.exe(偶尔用),jps ...

  4. 获取spring上下文 - applicationContext

    前言 spring上下文是spring容器抽象的一种实现.将你需spring帮你管理的对象放入容器的一种对象,ApplicationContext是一维护Bean定义以及对象之间协作关第的高级接口. ...

  5. C++基础(静态数据成员和静态成员函数)

    [简介] 1.静态数据成员在类中声明,在源文件中定义并初始化: 2.静态成员函数没有this指针,只能访问静态数据成员: 3.调用静态成员函数:(1)对象.(2)直接调用: 4.静态成员函数的地址可用 ...

  6. 第三章 hash是个啥玩意

    3.10 hash 什么是哈希? hash,一般翻译做散列.杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值.这种转换是一种压 ...

  7. K number(思维和后缀以及3的特性)(2019牛客暑期多校训练营(第四场))

    示例1: 输入:600 输出:4 说明:'600', '0', '0', '00' are multiples of 300. (Note that '0' are counted twice bec ...

  8. SAS学习笔记51 SAS数据集

    结构 SAS数据集是关系型的,包含两个部分:描述部分(变量)和数据部分(观察值) 形式 SAS系统中共有两种类型的数据集: 1.SAS 数据文件(SAS datafiles) 2.SAS 数据视窗(S ...

  9. [LOJ 6485]LJJ学二项式定理(单位根反演)

    也许更好的阅读体验 \(\mathcal{Description}\) 原题链接 \(T\)组询问,每次给\(n,s,a_0,a_1,a_2,a_3\)求 \(\begin{aligned}\left ...

  10. 网页调试js时,如何知道某个事件对应哪段js代码?

    有时候我们需要知道某个事件对应的js代码,比如点击一个div元素时,出现下拉框,我想知道这个功能对应的js代码,那就可以按下图操作: 勾选click事件,重新运行,那么就会在每个click事件那里设置 ...