eslint-config-sanity
Version:
Shared eslint configs for sanity-io
82 lines (56 loc) • 1.96 kB
Markdown
# eslint-config-sanity
Shared eslint rules for official Sanity.io projects
## Installing
```bash
npm install --save-dev eslint-config-sanity
```
## Usage
Create an `.eslintrc` in the root of your project (or an `eslintConfig` entry in `package.json`) and extend the `sanity` config:
```json
{
"env": {"node": true, "browser": true},
"extends": ["sanity"]
}
```
Adjust `env` according to your use case, obviously.
## Usage: React
ESLint requires plugins to be peer dependencies (they resolve relative to the end-user project), as such you need to install an additional dependency if you're using React:
```bash
npm install --save-dev eslint-plugin-react eslint-plugin-react-hooks
```
Then, make sure to extend `sanity/react` in your `.eslintrc`:
```json
{
"extends": ["sanity/react"]
}
```
**Note**: It's not necessary to extend both `sanity` _and_ `sanity/react` - extending `sanity/react` will implicitly extend `sanity` first.
**Note:** If you're using TypeScript _and_ React, make sure you extend `sanity/react` _before_ `sanity/typescript`:
```json
{
"extends": ["sanity/react", "sanity/typescript"]
}
```
## Usage: Typescript
ESLint requires plugins to be peer dependencies (they resolve relative to the end-user project), as such you need to install a few more dependencies if you're using typescript:
```bash
npm install --save-dev \
typescript \
@typescript-eslint/parser \
@typescript-eslint/eslint-plugin
```
Then, make sure to extend `sanity/typescript` in your `.eslintrc`:
```json
{
"extends": ["sanity/typescript"]
}
```
**Note**: It's not necessary to extend both `sanity` _and_ `sanity/typescript` - extending `sanity/typescript` will implicitly extend `sanity` first.
**Note:** If you're using TypeScript _and_ React, make sure you extend `sanity/react` _before_ `sanity/typescript`:
```json
{
"extends": ["sanity/react", "sanity/typescript"]
}
```
## License
MIT © [Sanity.io](https://www.sanity.io/)