So implementieren Sie die mehrseitige Entwicklung im Webpack
Dieser Artikel stellt hauptsächlich die Praxis der mehrseitigen Webpack-Entwicklung vor. Der Herausgeber ist der Meinung, dass er jetzt mit Ihnen geteilt wird und als Referenz dient. Folgen wir dem Editor und werfen wir einen Blick darauf.
Schreiben Sie es vorne
Webpack ist ein Modullader und Verpackungstool, das JS, CSS, Seiten, Bilder usw. laden kann. Verschiedene Ressourcen wie beispielsweise Videos sind modularisiert. Heutzutage kursieren im Internet viele Single-Page-Webpack-Modelle, aber was ist mit mehreren Seiten? Weniger, da ich jetzt ein mehrseitiges Frontend-Modell anbiete. Ich hoffe, jeder kann es nutzen.
Als ich zum ersten Mal mit Webpack in Kontakt kam, dachte ich, Webpack sei nur für Einzelseitenanwendungen geeignet, wie Webpack+React, Webpack+Vue. Ich selbst spüre die Leistungsfähigkeit und den Komfort von Webpack beim Erstellen von Projekten und bei der Entwicklung mit webpack+vue. Aufgrund der tatsächlichen Projektanforderungen frage ich mich, ob mit Webapck auch mehrseitige Websites erstellt werden können? Also begann ich mit der Erkundung und baute schließlich eine relativ vollständige Lösung auf.
In diesem Artikel wird anhand eines tatsächlichen Projekts beschrieben, wie Webpack für den technischen Aufbau in mehrseitigen Projekten verwendet wird. Dieser Artikel ist eine Zusammenfassung meiner eigenen praktischen Erfahrungen, daher sind einige Lösungen nicht optimal und werden noch untersucht und optimiert. Wenn es Fehler oder Auslassungen gibt, weisen Sie bitte darauf hin.
Einführung
Dieses Projekt basiert hauptsächlich auf webpack2.x, mit gulp als Hilfswerkzeug. Das Frontend verwendet art-template als Vorlagen-Engine. Eine Seite entspricht einer Vorlagendatei und einer Eintragsdatei. Andere Module können durch Importieren in die Eintragsdatei eingefügt werden Eintragsdatei.
Einrichtung der Front-End-Entwicklungsumgebung
Hauptverzeichnisstruktur
├─dist #打包后生成的文件目录 └─src #开发目录 ├─components #通用组件 ├─static #静态资源目录 │ ├─css │ ├─img │ └─js │ ├─component #站点通用组件对应的js │ ├─lib #第三方js库 │ ├─services #各页面入口 │ └─util #通用工具js ├─template #html模板 └─views #页面 main.js #公共入口 gulpfile.js #gulp任务配置 package.json #项目依赖 webpack.config.js #webpack配置
Webpack-Konfiguration
Eintragsdatei
// 获取入口文件 var entries = (function() { var jsDir = path.resolve(__dirname, 'src/static/js/services'); var entryFiles = glob.sync(jsDir + '/*.js'); var map = {}; entryFiles.forEach(function(filePath) { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')); map[filename] = filePath; }); return map; })();
Diese Methode generiert eine Zuordnung vom Dateinamen zum absoluten Pfad der Datei, z. B.
entry: { 'page-1': '/../webpack-multipage-demo/src/static/js/services/page-1.js' }
Hot Update
Hot Update ist einfach nicht einfach zu bedienen, was die Entwicklungseffizienz erheblich verbessert.
//服务器配置 var devServer = env === 'production' ? {} : { contentBase: path.resolve(__dirname), compress: true, historyApiFallback: true, hot: true, inline: true, host: 'localhost', port: 8080 };
Fügen Sie außerdem das neue webpack.HotModuleReplacementPlugin() zum Plugin hinzu und aktivieren Sie Hot Module Replacements, um Hot-Updates zu erhalten.
HTML-Konfiguration generieren
Es wird vereinbart, dass die JS-Datei auf derselben Seite denselben Namen wie die Vorlagendatei hat und schließlich eine HTML-Datei mit demselben Namen wird basierend auf dem js generiert.
var htmlPages = (function() { var artDir = path.resolve(__dirname, 'src/views'); var artFiles = glob.sync(artDir + '/*.art'); var array = []; artFiles.forEach(function(filePath) { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')); array.push(new HtmlWebpackPlugin({ template: path.resolve(__dirname, 'src/template/index.html'), filename: filename + '.html', chunks: ['vendor', 'main', filename], chunksSortMode: function(chunk1, chunk2) { var order = ['vendor', 'main', filename]; var order1 = order.indexOf(chunk1.names[0]); var order2 = order.indexOf(chunk2.names[0]); return order1 - order2; }, minify: { removeComments: env === 'production' ? true : false, collapseWhitespace: env === 'production' ? true : false } })); }); return array; })();
Gemeinsame Module in Komponenten extrahieren
Einige Module, die auf mehreren Seiten verwendet werden müssen, können als gemeinsame Komponenten extrahiert werden. Die Zusammensetzung der Komponente ist die gleiche wie die der Seite, eine .js-Datei, eine .art-Datei und eine .css-Datei. Der HTML-Inhalt wird in der JS-Datei gerendert und schließlich exportiert . Spezifische Vorgehensweisen finden Sie in der Demo
Es gibt Probleme
Jedes Mal, wenn eine neue Seite erstellt wird, muss der Webpack-Dienst aktualisiert werden neu gestartet
-
Schriftdateien können nicht komprimiert werden. Derzeit gibt es keine gute Lösung zum Komprimieren von Web-Schriftarten, die über die Demo von „font-face“ eingeführt wurden
Das Obige habe ich für alle zusammengestellt. Ich hoffe, es wird für alle hilfreich sein die Zukunft.
Verwandte Artikel:So implementieren Sie die Zahleneingabefeldkomponente in Vue
So verwenden Sie JQuery, um links und rechts zu erreichen Seitenleisten-Skalierungseffekt
Detaillierte Einführung in setTimeout in der JS-Funktion
Detaillierte Einführung in die Aktualisierung von Objekten in Mungo
So implementieren Sie AOP in JavaScript
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die mehrseitige Entwicklung im Webpack. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Vue ist ein hervorragendes JavaScript-Framework, das uns dabei helfen kann, schnell interaktive und effiziente Webanwendungen zu erstellen. Vue3 ist die neueste Version von Vue, die viele neue Features und Funktionen einführt. Webpack ist derzeit einer der beliebtesten JavaScript-Modulpaketierer und Build-Tools, der uns bei der Verwaltung verschiedener Ressourcen in unseren Projekten helfen kann. In diesem Artikel wird erläutert, wie Sie Webpack zum Verpacken und Erstellen von Vue3-Anwendungen verwenden. 1. Webpack installieren

Unterschiede: 1. Die Startgeschwindigkeit des Webpack-Servers ist langsamer als die von Vite. Da Vite beim Start nicht gepackt werden muss, müssen keine Modulabhängigkeiten analysiert und kompiliert werden, sodass die Startgeschwindigkeit sehr hoch ist. 2. Das Hot-Update von Vite ist in Bezug auf HRM schneller. Wenn sich der Inhalt eines bestimmten Moduls ändert, muss der Browser das Modul einfach erneut anfordern. 3. Vite verwendet esbuild, um Abhängigkeiten vorab zu erstellen, während Webpack auf Knoten basiert. 4. Die Ökologie von Vite ist nicht so gut wie die von Webpack und die Loader und Plug-Ins sind nicht umfangreich genug.

Mit der kontinuierlichen Weiterentwicklung der Webentwicklungstechnologie sind die Front-End- und Back-End-Trennung sowie die modulare Entwicklung zu einem weit verbreiteten Trend geworden. PHP ist eine häufig verwendete Back-End-Sprache. Bei der modularen Entwicklung müssen wir einige Tools verwenden, um Module zu verwalten und zu packen. In diesem Artikel wird die Verwendung von PHP und Webpack für die modulare Entwicklung vorgestellt. 1. Was ist modulare Entwicklung? Unter modularer Entwicklung versteht man die Zerlegung eines Programms in verschiedene unabhängige Module.

Konfigurationsmethode: 1. Verwenden Sie die Importmethode, um den ES6-Code in die gepackte JS-Codedatei einzufügen. 2. Verwenden Sie das NPM-Tool, um das Babel-Loader-Tool zu installieren. Die Syntax lautet „npm install -D babel-loader @babel/core“. @babel/preset-env“; 3. Erstellen Sie die Konfigurationsdatei „.babelrc“ des Babel-Tools und legen Sie die Transkodierungsregeln fest; 4. Konfigurieren Sie die Verpackungsregeln in der Datei webpack.config.js.

Da die Komplexität moderner Webanwendungen immer weiter zunimmt, wird die Entwicklung exzellenter Front-End-Engineering- und Plug-in-Systeme immer wichtiger. Mit der Popularität von Spring Boot und Webpack sind sie zu einer perfekten Kombination für die Erstellung von Front-End-Projekten und Plug-in-Systemen geworden. SpringBoot ist ein Java-Framework, das Java-Anwendungen mit minimalen Konfigurationsanforderungen erstellt. Es bietet viele nützliche Funktionen, wie z. B. die automatische Konfiguration, sodass Entwickler Webanwendungen schneller und einfacher erstellen und bereitstellen können. W

In Vue kann Webpack JS-, CSS-, Bilder-, JSON- und andere Dateien in geeignete Formate für die Browserverwendung packen; in Webpack können JS-, CSS-, Bilder-, JSON- und andere Dateitypen als Module verwendet werden. Verschiedene Modulressourcen im Webpack können gepackt und zu einem oder mehreren Paketen zusammengeführt werden. Während des Verpackungsprozesses können die Ressourcen verarbeitet werden, z. B. durch Komprimieren von Bildern, Konvertieren von SCSS in CSS, Konvertieren der ES6-Syntax in ES5 usw., was möglich ist Wird anhand des HTML-Dateityps erkannt.

Webpack ist ein Modulpaketierungstool. Es erstellt Module für verschiedene Abhängigkeiten und packt sie alle in verwaltbare Ausgabedateien. Dies ist besonders nützlich für Single-Page-Anwendungen (der heutige De-facto-Standard für Webanwendungen).

Wie implementiert Webpack die Verpackung? Der folgende Artikel vermittelt Ihnen ein tiefgreifendes Verständnis der Webpack-Verpackungsprinzipien. Ich hoffe, er wird Ihnen hilfreich sein!
