Plugin Eslint puissant avec des règles pour vous aider à réaliser un projet évolutif, cohérent et bien structuré.
Créez votre propre cadre! Définissez votre structure de dossier, la composition de fichiers, les conventions de dénomination avancées et créez des modules indépendants.
Faites passer votre projet au niveau supérieur et gagnez du temps en automatisant l'examen des principes clés d'un projet sain!
? informations générales
? Terrain de jeu pour les règles d'eslint-plugin-project-structure.
Consultez les dernières versions et restez à jour avec de nouvelles fonctionnalités et modifications.
Faites partie de la communauté! Laissez un et partagez le lien avec vos amis.
Si vous avez des questions ou avez besoin d'aide pour créer une configuration qui répond à vos besoins, aide.
Si vous avez trouvé un bogue ou une erreur dans la documentation, signalez les problèmes.
Si vous avez une idée pour une nouvelle fonctionnalité ou une amélioration à celle existante, des idées.
Si vous souhaitez discuter des structures de projet dans différents cadres ou si vous souhaitez voter sur une idée proposée, des discussions.
Documentation
structure de projet / structure de dossier
structure de projet / modules indépendants
structure de projet / composition de fichiers
Project-structure / Structure du dossier
Appliquer les règles sur la structure des dossiers pour garder votre projet cohérent, ordonné et bien pensé.
Caractéristiques:
Validation de la structure des dossiers. Tous les fichiers / dossiers à l'extérieur de la structure seront considérés comme une erreur.
Nom de fichier / dossier Regex Validation avec des fonctionnalités comme Wildcard * et le traitement . En tant que personnage, ainsi que d'autres commodités.
Construire dans la validation du cas.
Hériter du nom du dossier. Le fichier / dossier hérite du nom du dossier dans lequel il est situé. Option d'ajouter vos propres préfixes / suffixes ou de modifier le cas.
Appliquer l'existence d'un fichier / dossiers lorsqu'un fichier / dossier spécifique existe. Par exemple, si ./src/Component.tsx existe, alors ./src/Component.test.tsx et ./src/stories/Component.stories.tsx doivent également exister.
Règles réutilisables pour les structures de dossiers.
Une option pour créer un fichier de configuration séparé avec la prise en charge de TypeScript.
Forcer une structure imbriquée / plate pour un dossier donné.
Prise en charge de toutes les extensions de fichiers.
Recursion du dossier. Vous pouvez nicher à plusieurs reprises une structure de dossiers et fixer une limite à la profondeur de nidification. Il existe également une option pour modifier la règle au niveau final, comme aplatir la structure du dossier.
Moins de répétitions et de messages d'erreur précis, même pour les dossiers profondément imbriqués (récursivité), en représentant la structure du dossier comme un arbre.
Vérification de la longueur des chemins et notification lorsque la limite est dépassée.
Project-structure / Modules indépendants
Un principe clé d'un projet sain est d'empêcher la création d'un arbre de dépendance massif, où la suppression ou la modification d'une caractéristique déclenche une réaction en chaîne qui a un impact sur l'ensemble du projet.
Créez des modules où vous contrôlez ce qui peut être importé dans eux. Éliminez les dépendances inutiles entre les dossiers ou les fichiers pour créer des fonctionnalités vraiment indépendantes.
Caractéristiques:
Création de modules dans lesquels vous contrôlez ce qui peut être importé (par exemple, les types, les fonctions, les composants d'une fonctionnalité ne peuvent pas être importés dans une autre fonctionnalité).
La possibilité de créer des règles très détaillées, même pour les structures de dossiers imbriquées. Qu'il s'agisse d'un grand module, d'un sous-module ou d'un seul fichier, il n'y a pas de limites.
Prise en charge de tous les types d'importations, y compris require() , import() , jest.mock() et jest.requireActual() , ainsi que ExportAllDeclaration et ExportNamedDeclaration .
Désactiver les importations externes (node_modules) pour un module donné (option pour ajouter des exceptions).
Prise en charge des importations non relatives / relatives.
Resolver d'importation intégré, vous n'avez donc pas besoin d'installer de plugins supplémentaires. Il comprend également une configuration intégrée pour les extensions de fichiers les plus populaires, vous n'avez donc pas à configurer quoi que ce soit manuellement.
Modèles d'importation réutilisables.
Prise en charge des alias de chemin. Le plugin détectera automatiquement votre tsconfig.json et utilisera vos paramètres. Il existe également une option pour les entrer manuellement.
Une option pour créer un fichier de configuration séparé avec la prise en charge de TypeScript.
Project-structure / Composition de fichier
Composez vos fichiers idéaux!
Ayez un contrôle total sur la commande et la quantité de sélecteurs.
Définissez les conventions avancées de dénomination et interdisez l'utilisation de sélecteurs spécifiques dans des fichiers donnés.
Caractéristiques:
Validation de la composition des fichiers.
Sélections prises en charge: class , function , arrowFunction , type , interface , enum , variable , variableExpression , propertyDefinition .
Hériter du nom de fichier comme nom de sélecteur. Option pour ajouter vos propres préfixes / suffixes, modifier le boîtier ou supprimer des pièces du nom de fichier.
Interdire l'utilisation de sélecteurs donnés dans un fichier donné. Par exemple, **/*.consts.ts ne peuvent contenir que des variables, **/*.types.ts Les fichiers ne peuvent contenir que des interfaces et des types.
Définissez l'ordre dans lequel vos sélecteurs doivent apparaître dans un fichier donné. Prise en charge de --fix pour corriger automatiquement l'ordre.
Règles pour les sélecteurs exportés, les sélecteurs à la racine du fichier et les sélecteurs imbriqués / tous les sélecteurs dans le fichier. Ils peuvent être utilisés ensemble en combinaison.
Appliquant un maximum d'un composant principal / fonction / classe par fichier.
La possibilité de définir une limite spécifique sur l'occurrence de certains sélecteurs à la racine d'un fichier donné.
Nom du sélecteur Validation Regex.
Construire dans la validation du cas.
Différentes règles pour différents fichiers.
Une option pour créer un fichier de configuration séparé avec la prise en charge de TypeScript.
Sponsors
Un grand merci à tous les sponsors pour votre soutien! Vous me donnez la force et la motivation pour continuer!
Grâce à vous, je peux aider les autres à créer leurs projets idéaux!