@inovatecjp/eslint-config
v1.3.1
Published
All-in-one ESLint 9 (flat) + Prettier with CLI for inovatecjp teams (react, react-native, node).
Downloads
46
Maintainers
Readme
@inovatecjp/eslint-config (all‑in‑one)
Um pacote só com ESLint 9 (flat) + Prettier 3 + plugins e um CLI inovatecjp.
Stacks: React (Next.js), React Native (Expo) e Node — com variante type‑aware.
Instalação
# Bun
bun add -D @inovatecjp/eslint-config
# npm npm i -D @inovatecjp/eslint-config
# pnpm pnpm add -D @inovatecjp/eslint-config
# yarn yarn add -D @inovatecjp/eslint-config✔️ Batteries‑included: você não precisa instalar ESLint/Prettier/plugins no projeto. Apenas
typescriptcomo peer (se usar TS).
Uso — scripts
Adicione ao seu package.json do projeto:
{
"scripts": {
"lint": "inovatecjp lint --stack=react",
"lint:fix": "inovatecjp lint:fix --stack=react",
"format": "inovatecjp format",
"format:check": "inovatecjp format:check"
}
}Stacks suportadas: react, react-native, node (padrão: base).
Flags úteis:
--typeaware→ ativa regras que usam tipos (requertsconfig.json).- Em CI, warnings também falham o job (comportamento padrão do CLI).
Exemplos
# Next.js (rápido, sem type-aware)
bun run lint
# React Native
inovatecjp lint --stack=react-native
# Node.js com verificação de tipos
inovatecjp lint --stack=node --typeaware
# Prettier (write/check). Aceita padrões/globs adicionais.
inovatecjp format
inovatecjp format:check "src/**/*.{ts,tsx}"Prettier — arquivo mínimo no projeto (necessário)
Para que o editor (VS Code) use exatamente o mesmo preset que o CLI usa, crie um arquivo mínimo na raiz do projeto:
// prettier.config.cjs
module.exports = require('@inovatecjp/eslint-config/prettier')Se quiser customizar algo, você pode sobrescrever opções específicas:
const base = require('@inovatecjp/eslint-config/prettier')
module.exports = { ...base, singleQuote: true }No VS Code, garanta que o Prettier será usado ao salvar:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"prettier.requireConfig": true
}Você não precisa criar
eslint.config.jsno projeto (o CLI já aponta para os presets). Mas para que o editor aplique o mesmo estilo do CLI ao salvar, é necessário ter oprettier.config.cjsacima na raiz do projeto.
O que vem no pacote
- ESLint 9 (flat) + Prettier 3;
- TypeScript (
@typescript-eslint), Import (eslint-plugin-import+eslint-import-resolver-typescript), Node (eslint-plugin-n), Unicorn, React, React Hooks, JSX A11y, React Native, React Native A11y, Vitest (eslint-plugin-vitest).
Presets exportados (para quem quiser importar programaticamente):
base,base-typeawarereact,react-typeawarereact-native,react-native-typeawarenode,node-typeawaretests
Você não precisa criar eslint.config.js no projeto — o CLI já aponta para os presets corretos. Se preferir, pode importar os presets no seu eslint.config.js:
// eslint.config.js (opcional)
import { react, tests } from '@inovatecjp/eslint-config'
export default [
...react,
...tests,
]Diferença: base × type‑aware
- base: checagens baseadas só na sintaxe — mais rápido; não precisa de
tsconfig.json. - type‑aware: ativa regras que usam informação de tipos (via
parserOptions.project) — mais rigoroso; exigetsconfig.json.
Sugerido: usar base no dia a dia e type‑aware no CI ou em módulos críticos (API/SDK).
Requisitos
- Node.js >= 18.18
- (Opcional)
typescript >= 5para presets TS/type‑aware.
Dúvidas frequentes
Preciso instalar ESLint/Prettier e plugins no projeto?
Não. O pacote já inclui tudo (batteries‑included). Você só precisa de typescript se usar TS.
E se meu projeto for só Node e eu não usar React?
Sem problema: use --stack=node e o CLI só carrega os plugins do preset Node.
Licença
MIT © InovatecJP
