Comment charger tous les fichiers dans un sous-répertoire à l'aide d'un site Web sans instructions requises

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, /.*/));