news 2026/7/18 22:50:20

react native项目配置eslint+prettier

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
react native项目配置eslint+prettier

一、创建react native项目

pnpm create expo-app --template default@sdk-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/Tailwind):

pnpm 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忽略文件 .prettierignore

node_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.x(eslint-config-expo开发用的也是^9.18.0):

pnpm 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`,再跑:

```bash
pnpm lint
```

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 22:46:07

储能电池就这么选性价比高I好用的电池回收信息对接平台

在新能源快速发展的当下&#xff0c;电池使用量激增&#xff0c;电池回收也变得愈发重要。不同类型的电池在性能、成本和适用场景上各有特点&#xff0c;而元小锂小程序则能为这些退役电池的回收提供专业、高效的信息对接服务。各类电池特点及回收需求磷酸铁锂 LP磷酸铁锂 LP 目…

作者头像 李华
网站建设 2026/7/18 22:46:01

【Coding生态】从代码托管到 AI 能力底座:与Coding一起共建 AI 研发生态

序过去&#xff0c;代码托管平台解决的是一个问题&#xff1a;如何管理代码。分支、提交、评审、合并、发布&#xff0c;围绕代码的Git协作体系由此建立&#xff0c;软件研发也因此变得更加规范、高效和可追溯。但未来&#xff0c;开发者真正面对的问题正在发生变化&#xff1a…

作者头像 李华
网站建设 2026/7/18 22:41:10

一种欠定盲源分离方法及其在模态识别中的应用附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

作者头像 李华
网站建设 2026/7/18 22:38:51

2026年科研检测行业 难溶样品卡尔费休辅助溶剂选择解析

在科研检测领域&#xff0c;卡尔费休滴定法是测定样品水分含量的经典方法&#xff0c;广泛应用于各类样品的水分检测&#xff0c;但难溶样品&#xff08;如原油、润滑油及高分子塑料&#xff09;的水分检测一直是行业痛点——样品溶解性差会导致水分萃取不充分、滴定反应受阻&a…

作者头像 李华
网站建设 2026/7/18 22:36:55

题解:洛谷 B4359 [GESP202506 三级] 分糖果

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来&#xff0c;并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构&#xff0c;旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大…

作者头像 李华