react native项目配置eslint+prettier
一、创建react native项目pnpm create expo-app --template defaultsdk-57具体参见Expo官网二、安装prettier和eslint相关依赖安装prettier相关依赖pnpm add prettier eslint-config-prettier eslint-plugin-prettier ianvs/prettier-plugin-sort-imports prettier-plugin-sort-json eslint-plugin-unused-imports prettier-plugin-tailwindcss -D安装eslint相关依赖pnpm add -D eslint eslint-config-expo包作用eslint检查代码问题eslint-config-expoExpo/RN/TS 官方规则集prettier格式化eslint-config-prettier关掉和 Prettier 冲突的 ESLint 规则eslint-plugin-prettier把 Prettier 问题当 ESLint 报错可选你用了 NativeWind/Tailwindpnpm add -D prettier-plugin-tailwindcss三、配置文件1、eslint.config.js项目根目录Flat Config// https://docs.expo.dev/guides/using-eslint/ const { defineConfig } require(eslint/config); const expoConfig require(eslint-config-expo/flat); const prettierConfig require(eslint-config-prettier); const eslintPluginPrettierRecommended require(eslint-plugin-prettier/recommended); const unusedImports require(eslint-plugin-unused-imports); const prettierOptions require(./prettier.config.js); module.exports defineConfig([ expoConfig, prettierConfig, eslintPluginPrettierRecommended, { plugins: { unused-imports: unusedImports, }, rules: { typescript-eslint/no-unused-vars: off, no-unused-vars: off, unused-imports/no-unused-imports: error, unused-imports/no-unused-vars: [ warn, { vars: all, varsIgnorePattern: ^_, args: after-used, argsIgnorePattern: ^_, }, ], // 显式传入同一份 Prettier 配置避免编辑器缓存旧 .prettierrc 导致排序打架 prettier/prettier: [error, prettierOptions], }, }, { ignores: [dist/*, android/*, ios/*, .expo/*], }, ]);2、创建prettier.config.js选用json文件若装了 prettier-plugin-tailwindcss/** type {import(prettier).Config} */ module.exports { semi: true, singleQuote: true, trailingComma: all, printWidth: 100, tabWidth: 2, endOfLine: lf, singleAttributePerLine: true, // require.resolve: ESLint / pnpm 下也能稳定加载插件 plugins: [ require.resolve(ianvs/prettier-plugin-sort-imports), require.resolve(prettier-plugin-sort-json), require.resolve(prettier-plugin-tailwindcss), ], importOrder: [ ^(react/(.*)$)|^(react$), ^(expo(.*)$)|^(expo$), THIRD_PARTY_MODULES, , ^/(.*)$, ^[./], ], importOrderParserPlugins: [typescript, jsx], importOrderTypeScriptVersion: 5.0.0, };3、 prettier忽略文件 .prettierignorenode_modules dist android ios .expo pnpm-lock.yaml *.lock可选.eslintignore 在 Flat Config 下一般用 ignores 即可可不单独建。注释完成以上配置以后有时候会出现代码不规范编辑器不爆出红色的现象。这不是编辑器设置的问题是 ESLint 本身崩了所以红线出不来。根本原因项目装的是 ESLint 10.7.0而eslint-config-expo依赖的eslint-plugin-react还不支持 ESLint 10解决办法 把 ESLint 钉在 9.xeslint-config-expo开发用的也是^9.18.0pnpm add -D eslint^9我目前安装的eslint是^9.39.5四、文件清单小结文件是否需要eslint.config.js✅ 需要.prettierignore✅ 需要.prettierrc✅ 建议有.eslintrc.js❌ SDK 57 用 Flat不必再加五、最快上手npx expo lint npx expo install --dev prettier eslint-config-prettier eslint-plugin-prettier然后按上面写好 eslint.config.js 和 .prettierrc再跑bashpnpm lint

相关新闻

【VS2017】 一个使用 cl 和 link 命令例子

【VS2017】 一个使用 cl 和 link 命令例子

编译脚本 build_windows_x86.bat echo off:: 初始化 VS2017 x86 编译环境 call "%VS2017%\vcvars32.bat" if errorlevel 1 (echo [ERROR] 无法初始化 VS2017 编译环境,请检查安装路径pauseexit /b 1 ):: 5. 编译测试程序 (必须 /MD ENABLE_DEEP_PLC/DRE…

2026/7/21 16:50:13 阅读更多 →
系统门窗哪家生产好

系统门窗哪家生产好

最近装修群里又炸锅了,一位业主吐槽:入住新家才一年,夏天开空调电费飙到800多,冬天开暖气还是透风,窗户边沿墙面甚至开始发霉。他花了2万多装了所谓的“品牌门窗”,结果不仅没省心,反而折腾出这…

2026/7/24 23:02:18 阅读更多 →
HarmonyOS7 属性动画:animateTo 让按钮点击不再干巴巴

HarmonyOS7 属性动画:animateTo 让按钮点击不再干巴巴

文章目录前言为什么需要动画animateTo 基本用法5 个实战动画1. 缩放动画——按钮点击反馈2. 旋转动画——刷新指示器3. 渐变动画——淡入淡出4. 位移动画——滑入卡片5. 组合动画——点赞特效动画曲线对比性能提示写在最后前言 你有没有这种感觉——写出来的 App 功能都有&…

2026/7/23 2:57:46 阅读更多 →

最新新闻

Hancitor木马解密工具使用指南:XOR加密流量分析与IOC提取

Hancitor木马解密工具使用指南:XOR加密流量分析与IOC提取

Hancitor木马解密工具使用指南:XOR加密流量分析与IOC提取 【免费下载链接】public_tools 项目地址: https://gitcode.com/gh_mirrors/pu/public_tools Hancitor木马解密工具是一款专为安全分析师和恶意代码研究者设计的实用工具,能够高效解密Han…

2026/7/25 21:26:13 阅读更多 →
Unity游戏模组开发:BepInEx插件框架原理与实战指南

Unity游戏模组开发:BepInEx插件框架原理与实战指南

1. 项目概述:为什么你需要BepInEx? 如果你是一个Unity游戏的玩家,尤其是那些在Steam创意工坊里拥有海量模组的游戏,比如《雨中冒险2》、《英灵神殿》或者《星露谷物语》,那么你大概率已经和BepInEx打过照面了&#xff…

2026/7/25 21:26:13 阅读更多 →
手把手教你用ipycanvas实现Conway‘s Game of Life生命游戏

手把手教你用ipycanvas实现Conway‘s Game of Life生命游戏

手把手教你用ipycanvas实现Conways Game of Life生命游戏 【免费下载链接】ipycanvas Interactive Canvas in Jupyter 项目地址: https://gitcode.com/gh_mirrors/ip/ipycanvas ipycanvas是一款强大的Jupyter交互式画布工具,能帮助开发者轻松创建动态图形和交…

2026/7/25 21:26:13 阅读更多 →
多尺度形态学在眼前节组织分割中的实践与优化

多尺度形态学在眼前节组织分割中的实践与优化

1. 项目背景与核心价值眼前节组织分割在眼科临床诊断和术前规划中具有关键作用。传统分割方法往往面临边缘模糊、对比度低等挑战,而多尺度形态学方法通过模拟人眼视觉系统的层次化处理机制,能够有效捕捉从宏观到微观的组织结构特征。我在青光眼筛查项目中…

2026/7/25 21:26:13 阅读更多 →
【架构实战】APISIX落地实战:云原生时代的动态网关

【架构实战】APISIX落地实战:云原生时代的动态网关

一、那次"改个路由要重启网关"的事故 2022年,我们的网关还是 Nginx Lua 手写的那一套。 某次大促前,运营临时要调整灰度比例:把 5% 的流量切到新版本。 我改了 Nginx 配置,执行 nginx -s reload。 结果:全站…

2026/7/25 21:26:13 阅读更多 →
二叉堆详解:原理、实现与应用

二叉堆详解:原理、实现与应用

1. 什么是二叉堆二叉堆(Binary Heap)是一种特殊的完全二叉树数据结构,它满足堆性质:对于最大堆,每个节点的值都大于或等于其子节点的值;对于最小堆,每个节点的值都小于或等于其子节点的值。二叉…

2026/7/25 21:25:12 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻