项目地址

https://gitee.com/zhudachangs/react-eslint-prettierrc-demo

项目地址gitee

项目配置eslint(验证) + prettierrc(配合vscode自动格式话代码)

一、创建一个项目

# 安装 react 脚手架
npm install -g create-react-app # 使用脚手架创建项目 (,有可能失败)
create-react-app eslint-demo1

二、配置 Eslint(校验)

安装 React插件

# ESLint允许使用自定义语法分析程序
yarn add @babel/eslint-parser -D
# 检验jsx语法
yarn add eslint-plugin-jsx-a11y -D # 设定react组件的相关规范
yarn add eslint-plugin-react -D # prettier专门做代码格式化的事情
yarn add eslint-config-prettier -D
yarn add eslint-plugin-prettier -D

配置.eslintrc

{
"parser": "@babel/eslint-parser",
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:prettier/recommended"
],
"plugins": [
"react",
"prettier"
],
"rules": {
"prettier/prettier": 0, // 关闭Vscode的prettier验证(防止vscode的prettier冲突!!!!!!)
"semi": 0, // 行末分号,根据编码习惯选择添加,这里配置的不加分号
"no-console": 0,
"comma-dangle": [
"error",
"never"
], // {}末尾逗号关闭
"max-len": 0,
"space-before-function-paren": [
0,
"always"
],
"no-unused-expressions": [
0,
{
"allowShortCircuit": true,
"allowTernary": true
}
],
"arrow-body-style": [
0,
"never"
],
"func-names": 0,
"prefer-const": 0,
"no-extend-native": 0,
"no-param-reassign": 0,
"no-restricted-syntax": 0,
"no-eval": 0,
"no-continue": 0,
"no-unused-vars": [
0,
{
"ignoreRestSiblings": true
}
],
"no-underscore-dangle": 0,
"global-require": 0,
"import/no-extraneous-dependencies": 0,
"import/prefer-default-export": 0,
"import/no-unresolved": 0,
"import/extensions": 0,
// react
"react/jsx-first-prop-new-line": 0,
"react/jsx-filename-extension": 0,
"react/jsx-no-bind": 0,
"react/no-array-index-key": 0,
"react/require-default-props": 0,
"react/forbid-prop-types": 0,
"react/no-string-refs": 0,
"react/no-find-dom-node": 0,
"react/no-danger": 0,
"react/prop-types": 0,
"react/display-name": 0,
"react/no-deprecated": 0,
"react/no-direct-mutation-state": 0,
"jsx-a11y/href-no-hash": 0,
"jsx-a11y/no-static-element-interactions": 0,
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 8,
"requireConfigFile": false,
"ecmaFeatures": {
"jsx": true,
"experimentalObjectRestSpread": true
},
"babelOptions": {
"presets": [
"@babel/preset-react"
]
}
},
"settings": {
"import/resolver": "node"
},
"env": {
"browser": true,
"node": true
}
}

三、配置 .prettierrc.js prettierrc(格式化代码)

module.exports = {
printWidth: 100, // 指定代码长度,超出换行
tabWidth: 2, // tab 键的宽度
useTabs: false, // 不使用tab
semi: true, // 结尾加上分号
singleQuote: false, // 使用单引号
quoteProps: "as-needed", // 要求对象字面量属性是否使用引号包裹,(‘as-needed’: 没有特殊要求,禁止使用,'consistent': 保持一致 , preserve: 不限制,想用就用)
jsxSingleQuote: false, // jsx 语法中使用单引号
trailingComma: "none", // 确保对象的最后一个属性后有逗号
bracketSpacing: true, // 大括号有空格 { name: 'rose' }
jsxBracketSameLine: false, // 在多行JSX元素的最后一行追加 >
arrowParens: "always", // 箭头函数,单个参数添加括号
requirePragma: false, // 是否严格按照文件顶部的特殊注释格式化代码
insertPragma: false, // 是否在格式化的文件顶部插入Pragma标记,以表明该文件被prettier格式化过了
proseWrap: "preserve", // 按照文件原样折行
htmlWhitespaceSensitivity: "ignore", // html文件的空格敏感度,控制空格是否影响布局
endOfLine: "auto" // 结尾是 \n \r \n\r auto
};

四、vscode settings.json 配置自动保存

{
"editor.formatOnSave": true, // #每次保存的时候自动格式化
}

常见错误

关闭vscode 自带的 prettierrc校验

一般这种情况就是vscode 的 prettierrc和项目的.prettierrc.js 冲突了

解决办法: .eslintrc 里面关闭 vscode的 prettier

{
"rules": {
"prettier/prettier": 0, // 关闭Vscode的prettier验证
}
}

错误二 'React' must be in scope when using JSX

引用 React 一定要加 React

// 引用 React 一定要加 React !!!!!!!!!
import React from "react";

react+eslint+prettier 项目配置的更多相关文章

  1. 🔥完美解决ESlint+Prettier各项配置冲突的语法报错问题(新手向)

    本文重点: 1.解决修改了Prettier默认配置,项目内格式化无法生效 2.解决Prettier缺少配置,函数名和括号之间,自动添加空格 3.settings.json配置项分享 一个程序员,可能非 ...

  2. 快速新建并配置一个eslint+prettier+husky+commitlint+vue3+vite+ts+pnpm的项目

    前置准备 一台电脑 vscode pnpm vscode插件:ESLint v2.2.6及以上 vscode插件:Prettier - Code formatter v9.5.0及以上 vscode插 ...

  3. React-native ESLint & Prettier & Pre-commit Hook配置

    目录 前言 一 eslint 1.1. 局部安装eslint 1.2 初始化配置文件 1.3 安装步骤 1.3.1 ESLint 风格 选Use a popular style guide 1.3.2 ...

  4. vscode 中 eslint prettier 和 eslint -loader 配置关系

    前置 本文将探究 vscode prettier 插件 和 eslint 插件在 vscode 中的配置以及这两者对应的在项目中的配置文件的关系,最后提及 vscode eslint 插件配置与 es ...

  5. Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南

    Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南 因为平时都是使用 VSCode ESLint + Prettier 检测格式化不规范代码,但是随着接手的项目越来越多 ...

  6. 小tips:使用vue-cli脚手架搭建项目,关于eslint语法检测配置

    配置文件在项目根目录里,文件名以 .eslintrc.* 为名. 为了兼容以前写的代码,避免修改太多代码,把不符合自己习惯的规则去掉,简单配置代码: module.exports = { root: ...

  7. eslint+prettier+husky+lint-staged 统一前端代码规范

    eslint+prettier+husky+lint-staged 统一前端代码规范 遵循编码规范和使用语法检测,可以很好的提高代码的可读性,可维护性,并有效的减少一些编码错误. 1.终极目标 团队中 ...

  8. 前端进阶(8) - 前端开发需要了解的工具集合:webpack, eslint, prettier, ...

    前端开发需要了解的工具集合:webpack, eslint, prettier, ... 前端开发需要了解的一些工具,这些工具能够帮助你在项目开发中事半功倍. 1. nrm: npm registry ...

  9. eslint prettier editrorconfig - 写出干净的前端代码

    FConfidence 关注 2018.12.30 02:38* 字数 2912 阅读 195评论 0喜欢 0 VSCode 插件安装 Prettier - Code Formatter ESLint ...

  10. React脚手架创建一个React应用以及项目目录结构详解

    react脚手架 用来帮助程序员快速创建一个基于xxx库的模板项目,包含了所有需要的配置,指定好了所有的依赖,可以直接安装/编译/运行一个简单效果 react提供了一个专门用于创建react项目的脚手 ...

随机推荐

  1. 【全】CSS动画大全之其他【火影忍者动态背景】

    效果预览 代码 <!DOCTYPE html> <html> <head> <head> <meta charset="utf-8&qu ...

  2. logback日志级别动态切换的四种方案 荐

    生产环境中经常有需要动态修改日志级别. 现在就介绍几种方案 方案一:开启logback的自动扫描更新 配置如下 <?xml version="1.0" encoding=&q ...

  3. 将整个工程的GBK转为utf-8格式

    eclipse将整个工程转为utf-8时原先中文注释会变为乱码,13年时写了个脚本将整个文件的java以及配置文件转为utf-8格式,下面是代码 package com.code.pd; import ...

  4. ubuntu 16.04 安装Python3.8虚拟环境

    virtualenv为应用提供了隔离的Python运行环境,可以解决不同应用间多版本的冲突问题. virtualenv会把用户指定版本的python复制到虚拟环境下,并修改相关的环境变量,使得pyth ...

  5. 使用JDBC查询数据库会一次性加载所有数据吗

    前几天有个小伙伴说他有个疑问:当我们发起一个查询的时候,数据库服务器是把所有结果集都准备好,然后一次性返回给应用程序服务吗(因为他们生产有个服务因为一个报表查询搞宕机了). 这样想的原因很简单,假设那 ...

  6. JavaScript Bom和Dom的一般性详解

    一.JavaScript的组成 JavaScript的实现包括以下3个部分: ECMAScript(核心) 描述了JS的语法和基本对象. 文档对象模型 (DOM) 处理网页内容的方法和接口 浏览器对象 ...

  7. Maven高级——继承与聚合

    继承与聚合 聚合 聚合:将多个模块组织成一个整体,同时进行项目构建的过程称为聚合 聚合工程:通常是一个不具有业务功能的"空"工程(有且仅有一个pom文件) 作用:使用聚合工程可以将 ...

  8. GZY.Quartz.MUI(基于Quartz的UI可视化操作组件) 2.7.0发布 新增各项优化与BUG修复

    前言 时隔大半年,终于抽出空来可以更新这个组件了 (边缘化了,大概要被裁员了) 2.7.0终于发布了~ 更新内容: 1.添加API类任务的超时时间,可以通过全局配置也可以单个任务设置 2.设置定时任务 ...

  9. Redis系列补充:聊聊布隆过滤器(go语言实践篇)

    ★ Redis24篇集合 1 介绍 布隆过滤器(Bloom Filter)是 Redis 4.0 版本之后提供的新功能,我们一般将它当做插件加载到 Redis Service服务器中,给 Redis ...

  10. Windows平台下安装与配置MySQL9

    要在Windows平台下安装MySQL,可以使用图行化的安装包.图形化的安装包提供了详细的安装向导,以便于用户一步一步地完成对MySQL的安装.本节将详细介绍使用图形化安装包安装MySQL的方法. 1 ...