Zurück zur Übersicht

Webpack/Encore - Dynamische Entries erstellen

#Tutorials#Webpack

Für ein Symfony Projekt, welches mit Webpack und dem Aufsatz Encore arbeitet wurde es mir zu mühsam für jede neue Datei einen Eintrag in die webpack.config.js zu machen. Deswegen habe ich hier einen Ansatz um mit der glob-Funktion Dateien zu finden und diese dann direkt hinzuzufügen.

const glob = require('glob');

// ...

// dynamic entries
glob.sync('./assets/**/js/modules/**/*.js').reduce((acc, item) => {
    /**
     * Der "[name]" Platzhalter bei "output" wird ersetzt
     * damit wir einen guten namen zum einbinden bekommen. 
     * Das kann man anpassen, wie man es möchte.
     */
    var name = item.replace(/\.\/assets\/|\/js\/modules|\.js/gi, '');
    acc[name] = item;
    // add entry for each js file
    Encore.addEntry(name, item);
    return acc;
}, {});

Falls man das Ganze nur mit Webpack und ohne Encore benutzen möchte:

entry: glob.sync('./assets/**/js/modules/**/*.js').reduce((acc, path) => {
    var name = item.replace(/\.\/assets\/|\/js\/modules|\.js/gi, '');
    acc[name] = item;
    return acc
}, {}),

Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.