0. Was ist WebpackWebpack ist ein Front-End-Tool zum Laden/Verpacken von Ressourcen. Es führt eine statische Analyse basierend auf den Modulabhängigkeiten durch und generiert dann gemäß den angegebenen Regeln entsprechende statische Ressourcen für diese Module. 1. Einsatz von Webpack1. Initialisieren Sie das Projekt
2. Installieren Sie die von Webpack benötigten Pakete
3. Webpack konfigurieren "Skripte": { "webpack": "webpack" // Anpassbare Konfigurationsdatei: „webpack“: „webpack --config webpack.js“ }, 4. Erstellen Sie eine Konfigurationsdatei (Standard: webpack.config.js) und konfigurieren Sie sie. const path = require('Pfad'); modul.exporte = { Modus: "Entwicklung", Eintrag: './src/index.js', Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: „bundle.js“, }, }; 5. Verpacken und testen C:\Benutzer\Daixiang\Desktop\demo>npm run webpack > [email protected] webpack C:\Benutzer\Daixiang\Desktop\demo > webpack --config webpack.config.js assetbundle.js 4,34 KiB [verglichen mit emit] (Name: main) Laufzeitmodule 670 Bytes 3 Module zwischenspeicherbare Module 231 Bytes ./src/index.js 159 Bytes [erstellt] [Code generiert] ./src/Base.js 72 Bytes [erstellt] [Code generiert] webpack 5.59.1 erfolgreich in 113 ms kompiliert 2. Kernkonzepte von Webpack
2.1 Eintrag2.1.1 EinzeleintragZwei Möglichkeiten, einen einzelnen Eintrag zu schreiben: Schreibmethode 1: Eintrag: './src/index.js' Schreibmethode 2: Eintrag: {main: './src/index.js'} webpack.config.js const path = require('Pfad'); modul.exporte = { Modus: "Entwicklung", // Eintrag: './src/index.js', Eintrag: { Haupt: "./src/index.js" }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: „bundle.js“, }, }; 2.1.2 Mehrere Eingängewebpack.config.js const path = require('Pfad'); modul.exporte = { Modus: "Entwicklung", //Mehrfacheintrag: { Haupt: "./src/index.js", Basis: './src/Base.js', über: './src/About.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: „bundle.js“, }, }; 2.2 Ausgabe2.2.1 Ausgabe mit Einzeleingabe Wenn nur ein Eintrag vorhanden ist, passen Sie den Ausgabedateinamen an. Ausgabe: { // Pfad Pfad: path.resolve(__dirname, 'dist'), // Dateiname: 'bundle.js', }, 2.2.2 Ausgabe mit mehreren Eingängen Bei mehreren Einträgen wird der Dateiname dynamisch ausgegeben. Ausgabe: { // Pfad Pfad: path.resolve(__dirname, 'dist'), // Dynamischer Ausgabedateiname Dateiname: '[name].js', }, 2.3 Lader Loader ist ein Modul, das es Webpack ermöglicht, Nicht-JS-Dateien zu verarbeiten. Modul: { Regeln: { // Normaler passender Dateitest: /\.js$/, // Ordner ausschließen exclude: /node_modules/, // Den angegebenen Loader verwenden Lader: „Babel-Loader“ } ] } Es ist zu beachten, dass zum Kompilieren der neuen API
2. Führen Sie
3. Verpacken und testen
2.4 Plugins Plugins sind Plugins, die zur Ausführung einer größeren Bandbreite von Aufgaben verwendet werden.
2. Konfigurieren Sie die Datei webpack.config.js
webpack.config.js const path = require('Pfad'); // Dateien importieren und Konstanten definieren const HtmlWebpackPlugin = require('html-webpack-plugin'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.js$/, // Ordner ausschließen exclude: /node_modules/, // Den angegebenen Loader verwenden Lader: „Babel-Loader“ } ] }, Plugins: [ // Einzelner Eintrag // neues HtmlWebpackPlugin( // { //Geben Sie die Vorlagendatei an und fügen Sie das generierte JS und andere Dateien in die Vorlagendatei ein // Vorlage: './index.html' // } // ) //Mehrere Einträge für neues HtmlWebpackPlugin( { Vorlage: './index.html', Dateiname: 'index.html', Stücke:['Index'], minimieren: // Kommentare löschen removeComments: true, // Leerzeichen entfernen removeWhitespace: false, // Doppelte Anführungszeichen aus HTML-Tag-Attributen entfernen removeAttributeQuotes: true } } ), neues HtmlWebpackPlugin( { Vorlage: './search.html', Dateiname: 'search.html', Brocken:['Suche'] } ) ], }; 3. Verpacken und testen
Hauptseite <!DOCTYPE html> <html lang=zh> <Kopf> <Meta-Zeichensatz=UTF-8> <meta http-equiv=X-UA-Kompatibler Inhalt="IE=edge"> <Titel>Index</Titel> <Skript defer=defer src=index.js></Skript></Kopf> <Text> </body> </html> suche.html <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <title>Suche</title> </Stil> <script defer src="search.js"></script> </Kopf> <Text> </body> </html> 3. Webpack verarbeitet CSS-Dateien3.1 In HTML eingebettetes <style>-Tag1. Installieren Sie den CSS-Loader, um CSS-Dateien in JS zu identifizieren, installieren Sie den Style-Loader und betten Sie CSS-Dateien in HTML ein
2. Konfigurieren Sie die Datei webpack.config.js Modul: { Regeln: { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.css$/, // CSS-Loader verwenden, um CSS in JS zu identifizieren, und Style-Loader verwenden, um CSS-Dateien in HTML einzubetten. // Auf die Reihenfolge des Arrays achten, von rechts nach links verwenden: ['style-loader', 'css-loader'] } ] }, 3. Verpacken und testen
3.2 Einführung von HTML in Form des <link>-Tags Verwenden Sie den CSS-Loader, um CSS in JS zu identifizieren, und verwenden Sie das Mini-CSS-Extract-Plugin, um CSS-Dateien zu importieren.
2. Konfigurieren Sie die Datei webpack.config.js const path = require('Pfad'); ...... const MiniCssExtractPlugin = erfordern('mini-css-extract-plugin'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: ...... { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.css$/, // CSS-Loader verwenden um CSS in JS zu identifizieren, MiniCssExtractPlugin.loader verwenden um CSS-Dateien zu importieren // Auf die Reihenfolge des Arrays achten, von rechts nach links verwenden: [MiniCssExtractPlugin.loader, 'css-loader'] } ] }, Plugins: [ neues MiniCssExtractPlugin( { Dateiname: „css/[name].css“ } ) ], }; 3. Verpacken und testen
dist/index.html <!DOCTYPE html> <html lang=zh> <Kopf> <Meta-Zeichensatz=UTF-8> <meta http-equiv=X-UA-Kompatibler Inhalt="IE=edge"> <Titel>Index</Titel> <Skript defer=defer src=index.js></Skript> <link href=css/index.css rel=stylesheet> </Kopf> <Text> </body> </html> 4. Webpack verarbeitet Bilder in CSS4.1 Verwenden Sie den Dateilader, um Bilder in CSS zu verarbeiten Verwenden Sie einen Dateilader, um Bilder in CSS zu verarbeiten. (Dateilader ist in Version 5 veraltet) Körper{ Hintergrundbild: URL (./images/3.jpg); Hintergrundwiederholung: keine Wiederholung; } 1. Installieren Sie den File-Loader
2. Konfigurieren Sie die Datei webpack.config.js const path = require('Pfad'); ...... const MiniCssExtractPlugin = erfordern('mini-css-extract-plugin'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: ...... { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.css$/, // Verwenden Sie CSS-Loader, um CSS in JS zu identifizieren, und verwenden Sie MiniCssExtractPlugin.loader, um CSS-Dateien zu importieren. // Achten Sie auf die Reihenfolge des Arrays, verwenden Sie es von rechts nach links: [ { Lader: MiniCssExtractPlugin.loader, Optionen: öffentlicher Pfad: '../' } }, „CSS-Lader“ ] }, { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.(jpe?g|png|gif)$/, verwenden: { Lader: 'Dateilader', Optionen: Name: 'img/[name].[ext]' } } } ] }, Plugins: [ //Mehrere Einträge für neues HtmlWebpackPlugin( { Vorlage: './index.html', Dateiname: 'index.html', Brocken: ['Index'], minimieren: // Kommentare löschen removeComments: true, // Leerzeichen löschen collapseWhitespace: false, // Doppelte Anführungszeichen aus HTML-Tag-Attributen entfernen removeAttributeQuotes: true } } ), neues HtmlWebpackPlugin( { Vorlage: './search.html', Dateiname: 'search.html', Brocken: ['Suche'] } ), neues MiniCssExtractPlugin( { Dateiname: „css/[name].css“ } ) ], }; 3. Verpacken und testen
4.2 Verwenden Sie html-withimg-loader, um Bilder in HTML zu verarbeiten1. Installieren Sie html-withimg-loader
2. Konfigurieren Sie die Datei webpack.config.js const path = require('Pfad'); const HtmlWebpackPlugin = erfordern('html-webpack-plugin'); const MiniCssExtractPlugin = erfordern('mini-css-extract-plugin'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.js$/, // Ordner ausschließen exclude: /node_modules/, // Den angegebenen Loader verwenden Lader: „Babel-Loader“ }, { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.css$/, // Verwenden Sie CSS-Loader, um CSS in JS zu identifizieren, und verwenden Sie MiniCssExtractPlugin.loader, um CSS-Dateien zu importieren. // Achten Sie auf die Reihenfolge des Arrays, verwenden Sie es von rechts nach links: [ { Lader: MiniCssExtractPlugin.loader, Optionen: öffentlicher Pfad: '../' } }, „CSS-Lader“ ] }, { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.(jpe?g|png|gif)$/, verwenden: { Lader: 'Dateilader', Optionen: Name: 'img/[name].[ext]', esModule: false } } }, { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.(html?)$/, Lader: „html-mit-Bild-Lader“ } ] }, Plugins: [ //Mehrere Einträge für neues HtmlWebpackPlugin( { Vorlage: './index.html', Dateiname: 'index.html', Brocken: ['Index'], minimieren: // Kommentare löschen removeComments: true, // Leerzeichen löschen collapseWhitespace: false, // Doppelte Anführungszeichen aus HTML-Tag-Attributen entfernen removeAttributeQuotes: true } } ), neues HtmlWebpackPlugin( { Vorlage: './search.html', Dateiname: 'search.html', Brocken: ['Suche'] } ), neues MiniCssExtractPlugin( { Dateiname: „css/[name].css“ } ) ], }; 3. Verpacken und testen
4.3 Verwenden Sie den Dateilader, um Bilder in js zu verarbeitenindex.js
1. Installieren Sie den File-Loader
2. Konfigurieren Sie die Datei webpack.config.js const path = require('Pfad'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: ...... { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.(jpe?g|png|gif)$/, verwenden: { Lader: 'Dateilader', Optionen: Name: 'img/[name].[ext]', esModule: false } } } ] }, }; 3. Verpacken und testen
4.4 Verwenden Sie den URL-Loader zum Verarbeiten von Bildernindex.js
1. URL-Loader und File-Loader installieren
2. Konfigurieren Sie die Datei webpack.config.js const path = require('Pfad'); modul.exporte = { Modus: "Entwicklung", Eintrag: { Index: "./src/index.js", Suche: './src/search.js', }, Ausgabe: { Pfad: Pfad.auflösen(__dirname, 'dist'), Dateiname: '[name].js', }, Modul: { Regeln: ...... { // Test zur Übereinstimmung mit regulären Ausdrücken: /\.(jpe?g|png|gif)$/, verwenden: { Lader: 'URL-Lader', Optionen: Name: 'img/[name].[ext]', esModule: false, Limit: 10000 // Bilder kleiner als 10 KB werden in das Base64-Format konvertiert} } } ] }, }; 3. Verpacken und testen
Dies ist das Ende dieses Artikels über die Verwendung von Webpack in JavaScript. Weitere Informationen zur Verwendung von JavaScript Webpack finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Docker-Dateispeicherpfad, Port-Mapping-Betriebsmodus ändern
>>: Automatische Zeilenumbrüche in HTML-Pre-Tags
Da ich Sicherheitsprodukte testen musste, wollte ...
Inhaltsverzeichnis Replikationsarchitektur mit ei...
Inhaltsverzeichnis 1. Prinzip des ganz linken Prä...
Ich habe kürzlich die Tutorial-Reihe zu CSS-Anima...
Vorwort Derzeit ist das von meiner Firma verwende...
<Text> <div id="Wurzel"> &l...
Beim Produktdesign legen Designer Wert darauf, das...
Inhaltsverzeichnis 1. Holen Sie sich einen zufäll...
Vorwort Ich habe vor Kurzem meine bisherigen Noti...
Frage Als ich kürzlich ein praktisches Projekt mi...
Inhaltsverzeichnis 1. Erstellen Sie eine Tabelle ...
Inhaltsverzeichnis Ideen Hostkonfiguration Konfig...
1. Was ist Wir können die Kommunikation zwischen ...
Vorwort Linux verfügt über entsprechende Open-Sou...
Der erste Schritt besteht darin, einen MySQL-Cont...