Webpack Cheatsheet 314 Webpack ist ein Opensource-JavaScript-Modul-Packer. Die wesentliche Aufgabe besteht darin, JavaScript-Dateien für die Nutzung im Browser zusammenzuführen und zu einer Datei zu bündeln; https://webpack.js.org/ Um ein neues Projekt mit Hilfe von Webpack zu erstellen, ist es am einfachsten das von mir erstellte „webpack-starter“ Repository zu nutzen: https://github.com/Sulkar/webpack-starter Das Repository einfach clonen und dann „npm install“ ausführen. Webpack Module webpack cli // installiert Webpack und Webpack CLI npm install webpack webpack-cli --save-dev webpack dev server // installiert den Webpack Development Server npm install webpack-dev-server --save-dev Using Webpack Dev Server copy webpack plugin Copies individual files or entire directories, which already exist, to the build directory. // installiert das Copy Plugin, um Dateien von z.B.: src nach dist zu kopieren npm install copy-webpack-plugin --save-dev const CopyPlugin = require("copy-webpack-plugin"); ... new CopyPlugin({ patterns: [ { from: "index.html", to: "" }, { from: "images", to: "images" }, ... ] }) CopyWebpackPlugin webpack style loader // installiert den CSS Style Loader, der css minified und durch import nutzbar macht npm install --save-dev style-loader css-loader Loading CSS mini css extract plugin // installiert das Mini CSS Extract Plugin npm install --save-dev mini-css-extract-plugin concat files plugin // installiert das concat files plugin npm install --save-dev webpack-concat-files-plugin ... const WebpackConcatPlugin = require("webpack-concat-files-plugin"); new WebpackConcatPlugin({ bundles: [ { dest: "./dist/js/1_start.min.js", src: ["./js/spin/spin.min.js", "./js/sanitizer/purify.min.js", ...], }, ... ] }) concat files plugin package.json // Startscripts welche mit "npm run ..." aufgerufen werden können. "scripts": { "build": "webpack --mode production", "start": "webpack serve --open --mode development" }, webpack.config.js //Bündelt index.js und alle darin referenzierten Module und speichert das minified Ergebnis in main.js const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist'), }, }; //setzt das Root Verzeichnis des Webpack Development Servers auf einen Ordner devServer: { static: 'dist', }, //Kopiert eine Datei in den oben eingestellten "output" Ordner //Hier wird die .wasm Datei nach "dist" kopiert. const CopyPlugin = require("copy-webpack-plugin"); ... plugins: [ new CopyPlugin({ patterns: [ { from: 'node_modules/sql.js/dist/sql-wasm.wasm', to: '' }, { from: 'src/images', to: 'images' }, ], }), ], CopyWebpackPlugin // Redirect module requests when normal resolving fails. // Musste hier für sql.js eingestellt werden, da die Module nicht vorhanden/benötigt wurden. ... resolve: { fallback: { "fs": false, "path": false, "crypto": false, } }, Webpack – Resolve // Nutzt den oben installierten CSS Loader ... module: { rules: [ { test: /\.css$/i, use: ['style-loader', 'css-loader'], }, ], }, Loading CSS unsere-schule.org × Webpack Cheatsheet Code: 314 Infos: unsere-schule Codes