J'ai une grande quantité de fichiers javascript divisés en 4 sous-répertoires dans mon application. En grognant, je les attrape tous et les compile dans un seul fichier. Ces fichiers n'ont pas de fonction module.exports.
Je veux utiliser webpack et le diviser en 4 parties. Je ne veux pas entrer manuellement et exiger tous mes fichiers.
Je voudrais créer un plugin qui, lors de la compilation, parcourt les arborescences de répertoires, puis saisit tous les noms et chemins de fichiers .js, puis requiert tous les fichiers des sous-répertoires et les ajoute à la sortie.
Je veux que tous les fichiers de chaque répertoire soient compilés dans un module que je pourrais ensuite exiger de mon fichier de point d'entrée, ou inclure dans les actifs mentionnés par http://webpack.github.io/docs/plugins.html .
Lors de l'ajout d'un nouveau fichier, je veux simplement le déposer dans le bon répertoire et savoir qu'il sera inclus.
Existe-t-il un moyen de faire cela avec webpack ou un plugin que quelqu'un a écrit pour le faire?
la source
image-size-loader
pour toutes les images afin de créer des espaces réservés avec des proportions correctes.loaders: [ { test: /\.json$/, loader: 'json' } ]
.{ test: /\.json$/, loader: 'json' }
ajoute le chargeur json pour les fichiers .json, tant que vous avez installé le chargeur.require.context(...)
(par exemple si vous essayez de tout exiger dans plusieurs dossiers), webpack lancera un avertissement. Les argumentsrequire.context
doivent être des constantes à la compilation.require-context
s'agit d'un wrapperwebpack
, et que son exemple est tiré dewebpack
la documentation de webpack.js.org/guides/dependency-management/#context-module-api - qui a été ajoutée en 2016 (dans github.com/webpack/ webpack.js.org/commit/... ), également après avoir écrit ma réponse ... Peut-être que les auteurs de webpack ont été influencés par ma réponse. Notez qu'ils l'ont étendu pour avoir un cache.Dans mon fichier d'application, j'ai fini par mettre le require
avec l'aimable autorisation de cet article: https://github.com/webpack/webpack/issues/118
Il ajoute maintenant tous mes fichiers. J'ai un chargeur pour html et css et il semble fonctionner très bien.
la source
expr
dans cet exemple?expr
est un chemin vers un seul fichier dans le dossier contextuel. donc si vous devez le faire non seulement pour avoir besoin de tous les fichiers html, c'est utile. webpack.github.io/docs/context.html#context-module-apiexpr
sais toujours pas ce que fait l' argument basé ici même après avoir regardé la documentation Webpack. que signifie «ne pas simplement pour exiger tous les fichiers html»? merciexpr
signifie iciQue diriez-vous d'une carte de tous les fichiers dans un dossier?
Faites ceci:
la source
Exemple de la façon d'obtenir une carte de toutes les images dans le dossier actuel.
la source
Tous les mérites à @splintor (merci).
Mais ici, c'est ma propre version dérivée.
Avantages:
{module_name: exports_obj}
objet.Code (version originale):
Exemple:
Exemple de sortie pour éventuel
console.log(allModules);
:Arborescence des répertoires:
Code (version profonde):
Exemple:
Résultat de l'exemple précédent utilisant cette version:
la source
cela fonctionne pour moi:
REMARQUE: cela peut nécessiter des fichiers .js dans des sous-répertoires de ./js/ de manière récursive.
la source