Einrichtung von Webpack und Babel

Webpack ist ein Bundler mit dem Hauptzweck, JavaScript-Dateien für die Nutzung im Browser zusammenzuführen (Webpack kann aber beispielsweise auch SASS in CSS kompilieren). Hier zeige ich die Einrichtung von Webpack und Babel – einem Tool, das ES6-JavaScript-Code in ES5-kompatiblen Code umwandeln kann.

Nachdem ich vor einigen Tagen bereits vergeblich versucht habe, die Kombination aus Webpack und Babel zum Laufen zu bekommen, hat es heute erstaunlich schnell funktioniert (man muss einfach nur den verschiedenen Anleitungen der Webpack-Doku folgen 😀 ). Das kleine Tutorial geht davon aus, dass bereits eine package.json für das Projekt vorhanden ist.

Um Webpack zu installieren, führt den folgenden Code im Projektverzeichnis aus:

npm install --save-dev webpack

Zur Installation von Babel ist der folgende Befehl notwendig:

npm install --save-dev babel-loader babel-core babel-preset-env

Jetzt müssen wir eine webpack.config.js zur Konfiguration von Webpack erstellen. In unserem Beispiel sieht sie so aus:

const path = require('path');

module.exports = {
	entry: './assets/js/src/functions.js',
	output: {
		filename: 'bundle.js',
		path: path.resolve(__dirname, 'assets/js')
	},
	module: {
		rules: [
			{
				test: /.js$/,
				exclude: /node_modules/,
				use: {
					loader: 'babel-loader',
					options: {
						presets: ['env']
					}
				}
			}
		]
	}
};

Zunächst legen wir mit entry die Datei fest, die von Webpack behandelt werden soll, und mit output die Ausgabedatei. Das war die Grundkonfiguration von Webpack, der module-Teil betrifft die Einrichtung von Babel.

Über module.rules legen wir Babel als Webpack-Loader fest. Der soll für alle JavaScript-Dateien gelten, ausgenommen das Verzeichnis node_modules. Als Loader nutzen wir das installierte babel-loader mit dem Preset env.

Um Webpack leichter ausführen zu können, nutzen wir nicht dessen CLI sondern NPM-Skripte. Der entsprechende Part aus der package.json sieht bei mir wie folgt aus:

"scripts": {
	"watch": "webpack --watch",
	"production": "webpack -p",
	"build": "webpack"
},

Über npm run watch können wir nun beispielsweise webpack --watch ausführen und dadurch Webpack starten und auf Änderungen horchen lassen, sodass es Dateiänderungen sofort automatisch berücksichtigt. Der webpack -p-Befehl ist für die Produktion gedacht – er minifiziert die Ausgabe, startet das LoaderOptionsPlugin (das in einer späteren Version von Webpack entfernt werden wird) und setzt die NodeJS-Umgebungsvariable, damit bestimmte Pakete anders kompilieren.

Nutzt ihr Webpack? Und falls ja, für was alles?

Das könnte auch interessant sein

Schreib einen Kommentar

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