J'ai une grande quantité de fichiers javascript divisés en 4 sous-répertoire dans mon application. En grunt, je les attrape et les compile dans un seul fichier. Ces fichiers n'ont pas de fonction module.exports
Je veux utiliser le 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 du répertoire, saisit tous les noms et chemins de fichiers .js, puis nécessite tous les fichiers dans les 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 alors exiger de mon fichier de point d'entrée, ou inclure dans les éléments que http://webpack.github.io/docs/plugins.html mentionne.
Lors de l'ajout d'un nouveau fichier, je souhaite simplement le déposer dans le répertoire correct et je sais qu'il sera inclus.
Existe-t-il un moyen de le faire avec un webpack ou un plugin que quelqu'un a écrit pour faire cela?
C'est ce que j'ai fait pour y parvenir:
function requireAll(r) { r.keys().forEach(r); } requireAll(require.context('./modules/', true, /\.js$/));
Dans mon fichier d'application, j'ai fini par mettre l'exigence
require.context( "./common", // context folder true, // include subdirectories /.*/ // RegExp )("./" + expr + "")
Grâce à cette publication: https://github.com/webpack/webpack/issues/118
Il ajoute maintenant tous mes fichiers. J'ai un chargeur pour html et css et ça semble fonctionner très bien.
Que diriez-vous d'une carte de tous les fichiers d'un dossier?
// { // './image1.png': 'data:image/png;base64,iVBORw0KGgoAAAANS', // './image2.png': 'data:image/png;base64,iVBP7aCASUUASf892', // }
Faire cela:
const allFiles = (ctx => { let keys = ctx.keys(); let values = keys.map(ctx); return keys.reduce((o, k, i) => { o[k] = values[i]; return o; }, {}); })(require.context('./path/to/folder', true, /.*/));