Utilisation de caractères génériques pour importer des modules à partir de tous les fichiers d'un répertoire
Malgré la capacité d'ES6 à importer des exportations spécifiques à partir de fichiers à l'aide d'instructions d'importation individuelles, la gestion plusieurs importations à partir de plusieurs fichiers peuvent devenir fastidieuses. Pour rationaliser l'organisation, les développeurs préféreront peut-être avoir un module par fichier. Cependant, les méthodes d'importation traditionnelles pour de tels scénarios aboutissent à des importations détaillées avec des instructions distinctes pour chaque module.
Pour résoudre ce problème, certains développeurs ont envisagé la possibilité hypothétique d'utiliser des caractères génériques dans les instructions d'importation pour récupérer des modules de tous les fichiers d'un fichier. répertoire spécifié. Plus précisément, ils souhaitent une syntaxe telle que :
import {ThingA, ThingB, ThingC} from 'lib/things/*';
Cette approche hypothétique repose sur l'hypothèse que chaque fichier contient une seule exportation par défaut et partage le même nom que son module correspondant. Cependant, dans l'état actuel des choses, le système de modules ES6 ne fournit pas de prise en charge directe des importations de caractères génériques.
Bien que l'approche proposée soit actuellement irréalisable, il convient de noter que la résolution des noms de modules est gérée par les chargeurs de modules. Par conséquent, il est possible qu'une implémentation de chargeur de module émerge à l'avenir qui pourrait permettre de telles importations génériques.
En l'absence de prise en charge intégrée, une solution de contournement consiste à créer un « fichier de module » intermédiaire, pour exemple, lib/things/index.js, qui contiendrait ce qui suit :
export * from 'ThingA'; export * from 'ThingB'; export * from 'ThingC';
Cette approche permettrait aux développeurs d'utiliser une instruction d'importation simplifiée :
import {ThingA, ThingB, ThingC} from 'lib/things';
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!