react+eslint+prettier 项目配置
项目地址
https://gitee.com/zhudachangs/react-eslint-prettierrc-demo
项目配置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 项目配置的更多相关文章
- 🔥完美解决ESlint+Prettier各项配置冲突的语法报错问题(新手向)
本文重点: 1.解决修改了Prettier默认配置,项目内格式化无法生效 2.解决Prettier缺少配置,函数名和括号之间,自动添加空格 3.settings.json配置项分享 一个程序员,可能非 ...
- 快速新建并配置一个eslint+prettier+husky+commitlint+vue3+vite+ts+pnpm的项目
前置准备 一台电脑 vscode pnpm vscode插件:ESLint v2.2.6及以上 vscode插件:Prettier - Code formatter v9.5.0及以上 vscode插 ...
- 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 ...
- vscode 中 eslint prettier 和 eslint -loader 配置关系
前置 本文将探究 vscode prettier 插件 和 eslint 插件在 vscode 中的配置以及这两者对应的在项目中的配置文件的关系,最后提及 vscode eslint 插件配置与 es ...
- Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南
Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南 因为平时都是使用 VSCode ESLint + Prettier 检测格式化不规范代码,但是随着接手的项目越来越多 ...
- 小tips:使用vue-cli脚手架搭建项目,关于eslint语法检测配置
配置文件在项目根目录里,文件名以 .eslintrc.* 为名. 为了兼容以前写的代码,避免修改太多代码,把不符合自己习惯的规则去掉,简单配置代码: module.exports = { root: ...
- eslint+prettier+husky+lint-staged 统一前端代码规范
eslint+prettier+husky+lint-staged 统一前端代码规范 遵循编码规范和使用语法检测,可以很好的提高代码的可读性,可维护性,并有效的减少一些编码错误. 1.终极目标 团队中 ...
- 前端进阶(8) - 前端开发需要了解的工具集合:webpack, eslint, prettier, ...
前端开发需要了解的工具集合:webpack, eslint, prettier, ... 前端开发需要了解的一些工具,这些工具能够帮助你在项目开发中事半功倍. 1. nrm: npm registry ...
- eslint prettier editrorconfig - 写出干净的前端代码
FConfidence 关注 2018.12.30 02:38* 字数 2912 阅读 195评论 0喜欢 0 VSCode 插件安装 Prettier - Code Formatter ESLint ...
- React脚手架创建一个React应用以及项目目录结构详解
react脚手架 用来帮助程序员快速创建一个基于xxx库的模板项目,包含了所有需要的配置,指定好了所有的依赖,可以直接安装/编译/运行一个简单效果 react提供了一个专门用于创建react项目的脚手 ...
随机推荐
- 用户案例 | 蜀海供应链基于 Apache DolphinScheduler 的数据表血缘探索与跨大版本升级经验
导读 蜀海供应链是集销售.研发.采购.生产.品保.仓储.运输.信息.金融为一体的餐饮供应链服务企业.2021年初,蜀海信息技术中心大数据技术研发团队开始测试用DolphinScheduler作为数据中 ...
- UDP协议实现音频传输
目录 服务器端 客户端 服务器端 /********************************************************************************** ...
- 如何查看mongodb的索引命中率
如何查看mongodb的索引命中率 一.背景 现在mongodb使用率很高,经常会遇到查询慢时,就会创建索引,而有时候索引命中率又不高,下面来介绍下测试环境下如何查看索引命中率 二.方案 1.首先查看 ...
- 【A GUIDE TO CRC ERROR DETECTION ALGORITHM】 (译文1)
A GUIDE TO CRC ERROR DETECTION ALGORITHM (译文) <A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHM& ...
- Win32 动态库dll
这两天学习动态库的练习,分享下方法 实例.封装窗口类的两种状态. 1.自定义窗口类QWnd 2.资源模板窗口对话框类 下面是dll的头文件,类的声明 #pragma once #ifndef _CLA ...
- GNU make-Makefile文件简介
Makefile简介 Makefile是一种特殊格式的文件,被make工具使用来管理软件的构建过程.Makefile定义了一组规则和依赖关系,告诉make如何编译和链接程序. Makefile语句 T ...
- the request was rejected because no multipart boundary was found
报错: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.t ...
- DB\redis\zookeeper分布式锁设计
redis 参考目录: 生产级Redis 高并发分布式锁实战1:高并发分布式锁如何实现 https://www.cnblogs.com/yizhiamumu/p/16556153.html 生产级Re ...
- OAuth2.0授权-gitee授权码模式
OAuth2.0授权验证-gitee授权码模式 本文主要介绍如何笔者自己是如何使用gitee提供的OAuth2.0协议完成授权验证并登录到自己的系统,完整模式如图 1.创建应用 打开gitee个人中心 ...
- 全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
全网最适合入门的面向对象编程教程:50 Python 函数方法与接口-接口和抽象基类 摘要: 在 Python 中,接口和抽象基类(Abstract Base Classes, ABCs)都用于定义类 ...