🚀 Configuração ESLint e Prettier opinativa e completa, focada exclusivamente em projetos TypeScript (Next.js e APIs RESTful).
Agora ficou muito mais simples! Todas as ferramentas necessárias (ESLint, Prettier, TypeScript e plugins) já vêm incluídas automaticamente.
npm install --save-dev @wesleydevrodio/eslint-configpnpm add -D @wesleydevrodio/eslint-configyarn add -D @wesleydevrodio/eslint-configAo instalar este pacote, você não precisa instalar manualmente o eslint, prettier ou qualquer plugin. Eles já estão listados como dependências diretas e estarão disponíveis no seu node_modules.
Crie um arquivo eslint.config.js na raiz do seu projeto:
import eslintConfig from "@wesleydevrodio/eslint-config/next";
export default eslintConfig;Para projetos de API (sem React), use a configuração de API:
import eslintConfig from "@wesleydevrodio/eslint-config/api";
export default eslintConfig;prettier.config.js na raiz do seu projeto:
export { default } from "@wesleydevrodio/eslint-config/prettier";Sem este arquivo, o Prettier não aplicará a formatação e o Tailwind CSS não ordenará as classes automaticamente.
Se quiser customizar alguma configuração:
import prettierConfig from "@wesleydevrodio/eslint-config/prettier";
export default {
...prettierConfig,
// Suas personalizações aqui
printWidth: 100, // exemplo
};Esta configuração inclui:
- ✅ Point e vírgula obrigatório
- ✅ Uso de
constpreferencial - ✅ Sem
var - ✅ Igualdade estrita (
===) - ✅ Sem
eval()
- ✅
require-await- Funções async devem ter await - ✅
no-return-await- Sem return await desnecessário - ✅
no-promise-executor-return- Sem return em Promise executor
- ✅ Template literals preferenciais
- ✅ Arrow functions em callbacks
- ✅ Object shorthand
- ✅ Sem ternários aninhados
- ✅ Sem ternários desnecessários
- ✅ Sem imports duplicados
- ✅ Linha em branco após imports
- ✅ Ordenação automática de imports (alfabética)
- ✅ Agrupamento por tipo (builtin, external, internal, etc.)
- ✅ Configuração integrada
- ✅ Point e vírgula:
true - ✅ Aspas duplas
- ✅ Tab width: 2 espaços
- ✅ Print width: 80 caracteres
- ✅ Arrow parens: avoid
- ✅ End of line: auto
- ✅ Plugin Tailwind CSS - Ordena classes automaticamente
- ✅ Core Web Vitals rules
- ✅ TypeScript support
- ✅ Ignora automaticamente
.next/,out/,build/, etc.
Adicione estes scripts ao seu package.json:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check ."
}
}- Faça login no NPM:
npm login- Publique o pacote:
npm publish --access public- Para atualizar:
npm version patch # ou minor, ou major
npm publishMIT © Wesley Rodio
Este é um projeto de uso pessoal, mas sugestões são bem-vindas!