项目地址

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. [rCore学习笔记 023]任务切换

    导读 还是要先看官方手册. 学过DMA的同志可能比较好理解,一句话, 释放CPU总线 : 如果把应用程序执行的整个过程进行进一步分析,可以看到,当程序访问 I/O 外设或睡眠时,其实是不需要占用处理器 ...

  2. vue(element)中使用monaco实现代码高亮

    vue(element)中使用monaco实现代码高亮 使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各不同语言,而且支持关键字补全,还 ...

  3. Lazysysadmin靶机笔记

    Lazysysadmin靶机笔记 概述 lazysysadmin是一台Vulnhub靶机,整体比较简单. 靶机地址:https://pan.baidu.com/s/19nBjhMpGkdBDBFSnM ...

  4. Java 代码本地设置Hadoop用户名密码

    在Hadoop环境中,通常使用Kerberos进行身份验证.但在一些开发或测试环境中,我们可能需要在本地代码中设置用户名和密码来模拟或进行简单的测试.虽然这不是一个安全的做法,因为它违背了Kerber ...

  5. 一分钟搭建Ghost个人网站博客系统

    什么是Ghost博客系统 Ghost 是一款设计简约.主题精致的个人博客系统,Ghost支持多用户创建和编辑,支持Markdown格式撰写文章,编辑的内容可即时预览. 创建轻量云主机 这里默认你已经有 ...

  6. vue自定义组件的点击事件失效

    在vue开发过程中为了减少重复代码,很多时候都需要将重复的部分写成一个组件,方便调用.但是使用组件时很可能又会给该组件添加点击事件.如果直接这样写,事件则会失效: 正确写法应该是这样:

  7. 小tips:HTML元素属性分类以及不常用属性介绍

    HTML元素属性分类 全局属性和局部属性 属性可以分为两类:全局属性和局部属性. 其中全部元素都能使用的通用属性称为全局属性.只能运用在某些特定元素的属性,称为局部属性,例如form的action属性 ...

  8. JavaScript习题之填空题

    1. JavaScript有两种引⽤数据类型:__数组___.__对象__.2. Javascript通过__setTimeout___延迟指定时间后,去执⾏某程序.3. Javascript⾥Str ...

  9. Spring —— 注解开发(bean管理)

    注解定义bean       纯注解开发(无需配置文件)       bean作用范围    bean生命周期   

  10. CSP-J 2024游记

    CSP-J 2024游记 题目难度 总体来说,这次考试题目对于我这个初一牲难度不高.前面的选择题出现了少量难题(格蕾码). 选择题 选择题出现了一个搞人心态的BYD题目--格蕾码.这道题我蒙的, 阅读 ...