O poderoso plug-in ESLint com regras para ajudá-lo a obter um projeto escalável, consistente e bem estruturado.
Crie sua própria estrutura! Defina a estrutura da sua pasta, a composição do arquivo, as convenções avançadas de nomeação e crie módulos independentes.
Leve seu projeto para o próximo nível e economize tempo automatizando a revisão dos principais princípios de um projeto saudável!
? informações gerais
? Playground para regras de estrutura de projeto Eslint-Plugin.
Verifique os lançamentos mais recentes e mantenha -se atualizado com novos recursos e alterações.
Torne -se parte da comunidade! Deixe um e compartilhe o link com seus amigos.
Se você tiver alguma dúvida ou precisar de ajuda para criar uma configuração que atenda aos seus requisitos, ajuda.
Se você encontrou um bug ou um erro na documentação, os problemas de relatório.
Se você tem uma idéia para um novo recurso ou uma melhoria para uma idéias existentes.
Se você estiver interessado em discutir estruturas de projetos em diferentes estruturas ou deseja votar em uma idéia proposta, discussões.
Documentação
estrutura de projeto/estrutura de pastas
estrutura de projetos/módulos independentes
estrutura de projeto/composição de arquivo
Projeto -estrutura/estrutura de pastas
Aplicar as regras sobre a estrutura da pasta para manter seu projeto consistente, ordenado e bem pensado.
Características:
Validação da estrutura da pasta. Quaisquer arquivos/pastas fora da estrutura serão considerados um erro.
Nome do arquivo/pasta Validação regex com recursos como curinga * e tratamento . Como personagem, junto com outras conveniências.
Construir na validação de caso.
Herdando o nome da pasta. O arquivo/pasta herda o nome da pasta em que está localizado. Opção de adicionar seus próprios prefixos/sufixos ou alterar o caso.
Exibindo a existência de arquivos/pastas quando existe um arquivo/pasta específica. Por exemplo, se existe ./src/Component.tsx , então ./src/Component.test.tsx e ./src/stories/Component.stories.tsx também devem existir.
Regras reutilizáveis para estruturas de pastas.
Uma opção para criar um arquivo de configuração separado com suporte ao TypeScript.
Forçando uma estrutura aninhada/plana para uma determinada pasta.
Suporte para todas as extensões de arquivo.
Recursão da pasta. Você pode aninhar repetidamente uma estrutura de pasta e definir um limite na profundidade do ninho. Há também uma opção para alterar a regra no nível final, como achatar a estrutura da pasta.
Menos repetições e mensagens de erro precisas, mesmo para pastas profundamente aninhadas (recursão), representando a estrutura da pasta como uma árvore.
Verificando o comprimento dos caminhos e notificando quando o limite é excedido.
Projeto -estrutura/módulos independentes
Um princípio -chave de um projeto saudável é impedir a criação de uma árvore de dependência maciça, onde a remoção ou edição de um recurso desencadeia uma reação em cadeia que afeta todo o projeto.
Crie módulos em que você controla o que pode ser importado para eles. Elimine dependências desnecessárias entre pastas ou arquivos para criar funcionalidades verdadeiramente independentes.
Características:
Criando módulos nos quais você controla o que pode ser importado (por exemplo, tipos, funções, componentes de uma funcionalidade não podem ser importados para outra funcionalidade).
A capacidade de criar regras muito detalhadas, mesmo para estruturas de pastas aninhadas. Seja um módulo grande, um submodo ou um único arquivo, não há limitações.
Suporte para todos os tipos de importações, incluindo require() , import() , jest.mock() e jest.requireActual() , além de ExportAllDeclaration e ExportNamedDeclaration .
Desativando importações externas (Node_modules) para um determinado módulo (opção para adicionar exceções).
Suporte de importações não relativas/relativas.
Resolver de importação interno, para que você não precise instalar plugins adicionais. Ele também inclui configuração interna para as extensões de arquivo mais populares, para que você não precise configurar nada manualmente.
Padrões de importação reutilizáveis.
Suporte para aliases de caminho. O plug -in detectará automaticamente seu tsconfig.json e usará suas configurações. Há também uma opção para inseri -los manualmente.
Uma opção para criar um arquivo de configuração separado com suporte ao TypeScript.
Projeto -estrutura/compposição de arquivo
Componha seus arquivos ideais!
Tenha controle total sobre a ordem e a quantidade de seletores.
Defina convenções avançadas de nomeação e proibir o uso de seletores específicos em arquivos específicos.
Características:
Validação da composição do arquivo.
Seletores suportados: class , function , função arrowFunction , type , interface , enum , variable , variableExpression , propertyDefinition .
Herdando o nome do arquivo como o nome do seletor. Opção para adicionar seus próprios prefixos/sufixos, alterar o caso ou remover partes do nome do arquivo.
Proibir o uso de determinados seletores em um determinado arquivo. Por exemplo, **/*.consts.ts podem conter apenas variáveis, **/*.types.ts Os arquivos podem conter apenas interfaces e tipos.
Defina a ordem em que seus seletores devem aparecer em um determinado arquivo. Suporte para --fix para corrigir automaticamente o pedido.
Regras para seletores exportados, seletores na raiz do arquivo e aninhados/todos os seletores no arquivo. Eles podem ser usados juntos em combinação.
Exibindo um máximo de um componente/função/classe principal por arquivo.
A capacidade de definir um limite específico para a ocorrência de certos seletores na raiz de um determinado arquivo.
Nome do seletor Validação regex.
Construir na validação de caso.
Regras diferentes para diferentes arquivos.
Uma opção para criar um arquivo de configuração separado com suporte ao TypeScript.
Patrocinadores
Um grande obrigado a todos os patrocinadores pelo seu apoio! Você me dá força e motivação para continuar!
Graças a você, posso ajudar outras pessoas a criar seus projetos ideais!