# eslint-config-expo

> ESLint config for Expo apps

Latest version **57.0.2** (published 2026-08-26) · MIT license · 1.5M weekly downloads

## Install

```sh
npm install eslint-config-expo
pnpm add eslint-config-expo
yarn add eslint-config-expo
bun add eslint-config-expo
```

## Health

**Score 85/100 (A)** — status: active.

Positive: high downloads; no vulnerabilities; recently updated; high maintenance score; popular repo; extremely popular.

Warnings: no types; no esm support.

## Facts

| | |
|---|---|
| Version | 57.0.2 |
| Published | 2026-08-26 |
| First published | 2017-03-03 |
| Weekly downloads | 1.5M |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 8 |
| Unpacked size | 19.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 51709 |
| Author | Expo |
| Maintainers | ide, brentvatne, expoadmin, exponent, bycedric, kudochien, alanhughes, tsapeta, expo-bot, philpl, ccheever, wschurman |
| Keywords | eslint-config, expo, react-native |

## Links

- npm: https://www.npmjs.com/package/eslint-config-expo
- Repository: https://github.com/expo/expo
- Homepage: https://github.com/expo/expo/tree/main/packages/eslint-config-expo
- Issues: https://github.com/expo/expo/issues
- npm.io page: https://npm.io/package/eslint-config-expo

## Dependencies (8)

- [globals](https://npm.io/package/globals.md) ^16.0.0
- [eslint-plugin-expo](https://npm.io/package/eslint-plugin-expo.md) ^1.1.0
- [eslint-plugin-react](https://npm.io/package/eslint-plugin-react.md) ^7.37.3
- [eslint-plugin-import](https://npm.io/package/eslint-plugin-import.md) ^2.30.0
- [@typescript-eslint/parser](https://npm.io/package/@typescript-eslint/parser.md) ^8.59.0
- [eslint-plugin-react-hooks](https://npm.io/package/eslint-plugin-react-hooks.md) ^7.0.0
- [@typescript-eslint/eslint-plugin](https://npm.io/package/@typescript-eslint/eslint-plugin.md) ^8.59.0
- [eslint-import-resolver-typescript](https://npm.io/package/eslint-import-resolver-typescript.md) ^3.6.3

## Alternatives

- [eslint-plugin-sonarjs](https://npm.io/package/eslint-plugin-sonarjs.md) — 2.9M weekly downloads
- [@matter/protocol](https://npm.io/package/@matter/protocol.md) — 63.5K weekly downloads
- [@eventcatalog/linter](https://npm.io/package/@eventcatalog/linter.md) — 24.8K weekly downloads
- [@inrupt/eslint-config-base](https://npm.io/package/@inrupt/eslint-config-base.md) — 4.5K weekly downloads
- [@book000/eslint-config](https://npm.io/package/@book000/eslint-config.md) — 4.2K weekly downloads

## Recent versions

- 57.0.2 (latest) — 2026-08-26
- 58.0.2 (next) — 2026-09-21
- 58.0.0-canary-20260909-ea7a89a (canary) — 2026-09-09
- 56.0.5-canary-20260701-9100865 (canary-sdk-56) — 2026-07-01
- 55.0.1-canary-20260429-a5e59cf (canary-sdk-55) — 2026-04-29
- 7.1.2 (sdk-51) — 2024-04-24
- 58.0.1 — 2026-09-14
- 58.0.0 — 2026-09-10
- 58.0.0-canary-20260902-26df09e — 2026-09-02
- 58.0.0-canary-20260812-27f94d4 — 2026-08-12
- 58.0.0-canary-20260806-8c2d007 — 2026-08-06
- 57.0.1 — 2026-07-29
- 57.0.0-canary-20260723-64edab9 — 2026-07-23
- 57.0.0-canary-20260720-b6d63bc — 2026-07-20
- 57.0.0-canary-20260718-7cbcda5 — 2026-07-18
- … 147 more at https://npm.io/package/eslint-config-expo/versions

## README

# eslint-config-expo

Base ESLint config for Expo projects. This is a minimal config that supports JSX and TypeScript, platform-specific global variables, and file extensions like `.android.js`, `.ios.js` and `.web.js`. You are intended to compose this base config with the linter rules of your choice in your own ESLint configuration.

## Installation

```sh
yarn add --dev eslint-config-expo
```

You will also need to install `eslint`:

```sh
yarn add --dev eslint
```

## Usage

### With [flat config](https://eslint.org/blog/2022/08/new-config-system-part-2/) (recommended)

Import this config into your [configuration file](https://eslint.org/docs/latest/use/configure/configuration-files#configuration-file), e.g. `eslint.config.js` and spread it into the config array.

```js
// eslint.config.js
const expoConfig = require("eslint-config-expo/flat");
const { defineConfig } = require("eslint/config");

module.exports = defineConfig([
  expoConfig,
  // your other config
]);
```

### With legacy config

Import this config into your own ESLint [configuration](https://eslint.org/docs/latest/use/configure/configuration-files) using the `extends` option. ESLint checks both `package.json` and `.eslintrc.*` files for its configuration:

### package.json
```js
{
  "eslintConfig": {
    "extends": ["expo"]
  }
}
```

### .eslintrc.js
```js
module.exports = {
  extends: ["expo"],
};
```

---
_Source: https://npm.io/package/eslint-config-expo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
