El potente complemento de Eslint con reglas para ayudarlo a lograr un proyecto escalable, consistente y bien estructurado.
¡Crea tu propio marco! Defina su estructura de carpeta, composición de archivos, convenciones de nombres avanzadas y cree módulos independientes.
¡Lleve su proyecto al siguiente nivel y ahorre tiempo automatizando la revisión de los principios clave de un proyecto saludable!
? información general
? Patio de recreo para las reglas de estructura de proyección de plugin-plugin.
Verifique los últimos lanzamientos y manténgase actualizado con nuevas funciones y cambios.
¡Conviértete en parte de la comunidad! Deja A y comparte el enlace con tus amigos.
Si tiene alguna pregunta o necesita ayuda para crear una configuración que cumpla con sus requisitos, ayuda.
Si ha encontrado un error o un error en la documentación, informe los problemas.
Si tiene una idea para una nueva característica o una mejora para una existente, ideas.
Si está interesado en discutir estructuras de proyectos en diferentes marcos o desea votar sobre una idea propuesta, discusiones.
Documentación
Estructura de proyecto/estructura de carpetas
Estructura de proyecto/módulos independientes
Estructura de proyecto/composición de archivos
Proyecto -estructura/estructura de carpetas
Haga cumplir las reglas en la estructura de la carpeta para mantener su proyecto consistente, ordenado y bien pensado.
Características:
Validación de la estructura de la carpeta. Cualquier archivo/carpetas fuera de la estructura se considerará un error.
Validación de reglas de nombre/carpeta con características como comodín * y tratamiento . Como personaje, junto con otras comodidades.
Construir en la validación del caso.
Heredar el nombre de la carpeta. El archivo/carpeta hereda el nombre de la carpeta en la que se encuentra. Opción de agregar sus propios prefijos/sufijos o cambiar el caso.
Hacer cumplir la existencia de archivos/carpetas cuando existe un archivo/carpeta específico. Por ejemplo, IF ./src/Component.tsx existe, entonces ./src/Component.test.tsx y ./src/stories/Component.stories.tsx también debe existir.
Reglas reutilizables para estructuras de carpetas.
Una opción para crear un archivo de configuración separado con el soporte de TypeScript.
Forzando una estructura anidada/plana para una carpeta dada.
Soporte para todas las extensiones de archivos.
Recursión de carpeta. Puede anidar repetidamente una estructura de carpetas y establecer un límite en la profundidad de anidación. También hay una opción para cambiar la regla en el nivel final, como aplanar la estructura de la carpeta.
Menos repeticiones y mensajes de error precisos, incluso para carpetas profundamente anidadas (recursión), representando la estructura de la carpeta como un árbol.
Verificar la longitud de los caminos y notificar cuándo se excede el límite.
Estructura de proyecto/módulos independientes
Un principio clave de un proyecto saludable es evitar la creación de un árbol de dependencia masivo, donde eliminar o editar una característica desencadena una reacción en cadena que afecta todo el proyecto.
Cree módulos donde controle lo que se puede importar a ellos. Elimine las dependencias innecesarias entre carpetas o archivos para construir funcionalidades verdaderamente independientes.
Características:
La creación de módulos en los que controla lo que se puede importar (por ejemplo, tipos, funciones, componentes de una funcionalidad no se pueden importar a otra funcionalidad).
La capacidad de crear reglas muy detalladas, incluso para estructuras de carpetas anidadas. Ya sea que se trate de un módulo grande, un submódulo o un solo archivo, no hay limitaciones.
Soporte para todos los tipos de importaciones, incluidas require() , import() , jest.mock() y jest.requireActual() , así como ExportAllDeclaration y ExportNamedDeclaration .
Deshabilitar las importaciones externas (node_modules) para un módulo dado (opción para agregar excepciones).
Soporte de importaciones no relativas/relativas.
Resolución de importación incorporada, por lo que no necesita instalar ningún complemento adicional. También incluye la configuración incorporada para las extensiones de archivos más populares, por lo que no tiene que configurar nada manualmente.
Patrones de importación reutilizables.
Soporte para alias de ruta. El complemento detectará automáticamente su tsconfig.json y usará su configuración. También hay una opción para ingresarlos manualmente.
Una opción para crear un archivo de configuración separado con el soporte de TypeScript.
proyecto -estructura/archivo -composición
¡Componga sus archivos ideales!
Tener un control total sobre el orden y la cantidad de selectores.
Definir convenciones de nomenclatura avanzadas y prohibir el uso de selectores específicos en archivos dados.
Características:
Validación de composición de archivos.
Selectores compatibles: class , function , arrowFunction , type , interface , enum , variable , variableExpression , propertyDefinition .
Heredar el nombre de archivo como el nombre del selector. Opción para agregar sus propios prefijos/sufijos, cambiar el caso o eliminar las partes del nombre de archivo.
Prohibir el uso de selectores dados en un archivo determinado. Por ejemplo, **/*.consts.ts solo pueden contener variables, **/*.types.ts solo pueden contener interfaces y tipos.
Defina el orden en que sus selectores deben aparecer en un archivo determinado. Soporte para --fix para corregir automáticamente el orden.
Reglas para selectores exportados, selectores en la raíz del archivo y anidados/todos los selectores en el archivo. Se pueden usar juntos en combinación.
Hacer cumplir un máximo de un componente principal/función/clase por archivo.
La capacidad de establecer un límite específico en la ocurrencia de ciertos selectores en la raíz de un archivo determinado.
Nombre del selector Validación de regex.
Construir en la validación del caso.
Diferentes reglas para diferentes archivos.
Una opción para crear un archivo de configuración separado con el soporte de TypeScript.
Patrocinadores
¡Muchas gracias a todos los patrocinadores por su apoyo! ¡Me das la fuerza y la motivación para seguir adelante!
¡Gracias a ti, puedo ayudar a otros a crear sus proyectos ideales!