Inhaltsverzeichnis
Cache
Laden von Webseiten
HTML
CSS-Trennung
common
Lokale Entwicklung
Paketierungsgeschwindigkeit
DllPlugin
happypack
devtool
babel-loader
noParse && alias
Baumschütteln
Komprimierung
UglifyJsPlugin
UglifyJsParallelPlugin
Andere
Skript-CD
Analyse
Heim Web-Frontend CSS-Tutorial Erfahrungsaustausch mit Webpacks

Erfahrungsaustausch mit Webpacks

Feb 02, 2018 pm 02:28 PM
web webpack 经验

Webpack ist ein Modul-Bundler. Sein Hauptziel besteht darin, die gepackten Dateien in Browsern zu packen, aber sie können auch zur Transformation, Bündelung oder Paketierung verwendet werden. Ich hoffe, dass dieser Artikel allen helfen kann .

Cache

Dateinamen generieren [name].[contenthash:8].js, max-age + cdn für das Caching kombinieren.

Laden von Webseiten

HTML

war früher ein fester HTML-Code, HTML -> Versionsnummer der JS-Datei (über Webpack eingegeben) -> Bestimmen Sie die spezifischen JS-Dateien anhand der Version Nummer . (Jetzt, wo ich darüber nachdenke, macht es keinen Sinn, auch wenn es nicht so stark mit dem Backend verknüpft ist)

Jetzt ist es das geänderte HTML, das über HtmlWebpackPlugin eingegeben wird (generiert von Webpack, enthält js mit Versionsnummer)

Auf diese Weise wird auch eine Seriennummer gespart (Abrufen der Versionsnummerndatei). Gleichzeitig ist es auch praktisch, Graustufen zu erstellen. Wenn Sie beispielsweise die Anforderungen veröffentlichen, lassen Sie sie zuerst einige Benutzer erleben, geben Sie dann den HTML-Code dynamisch ein und senden Sie ihn an den Hintergrund. (HTML zu reparieren ist nicht so einfach)

CSS-Trennung

In Guanmai wird es dank der Verbesserung der Klassennamen durch React-GM nur sehr wenige CSS-Änderungen geben. Da es nur wenige Änderungen gibt, ist es nicht schlecht, das CSS zu trennen und ExtractTextPlugin zum Trennen des CSS zu verwenden.

Nach der Trennung wird die Größe von js reduziert und js wird nicht blockiert. Gleichzeitig können CSS und js gleichzeitig gezogen werden.

common

new CommonsChunkPlugin({name: 'commons'})
Nach dem Login kopieren

Wenn Sie sich den gepackten gemeinsamen Code ansehen, werden Sie feststellen, dass die IDs und Hashes anderer Module gemeinsam eingegeben werden, sodass sich die Commons-Datei jedes Mal ändert. was das Cachen erschwert.

Stellen Sie einfach zwei Dateilisten bereit, und Sie werden feststellen, dass Webpack die ID und den Hash in die Manifestdatei einfügt. Auf diese Weise können Commons zwischengespeichert werden. Übrigens habe ich auf der offiziellen Website keine Einführung gesehen, lassen Sie es mich wissen, wenn ja.

new CommonsChunkPlugin({names: ['commons', 'manifest']})
Nach dem Login kopieren

Lokale Entwicklung

Lassen Sie uns über lokale Dienste sprechen. Es gibt keinen Hintergrunddienst, daher müssen sie natürlich irgendwo tätig sein. Verfügbar über devServer.proxy. Sie können auch einen Agenten verwenden, um im externen Netzwerk nach Fehlern zu suchen. Da es sich ausschließlich um Quellcode handelt, erfolgt die Fehlerprüfung sehr schnell.

"proxy": {
    "/ticket/*": {
      "target": "http://dev.guanmai.cn:7413",
      "changeOrigin": true
    }
}
Nach dem Login kopieren

Paketierungsgeschwindigkeit

DllPlugin

Wenn das Projekt groß wird, sind zwangsläufig viele Pakete erforderlich, was zu einer sehr langen Verpackungszeit führt. Der offiziell empfohlene Ansatz besteht darin, Dateien, die sich nicht häufig ändern, in DLLs umzuwandeln.

Unser Projekt wird aufgerufen react react-dom prop-types classnames mobx mobx-react lodash moment big.js usw.

Online-Informationen zeigen, dass der Dateiname der DLL [name]_[hash].dll.js ist, unserer ist [npm version]_dll.js npm version, der von der package.json-Version eingelesen wird.

Warum nicht Hash, sondern die NPM-Version verwenden? Beim Nachdenken über die Sekundärverpackung ist ein Problem aufgetreten. Wie können wir beurteilen, ob die DLL neu verpackt werden muss? Was tun, wenn es sich um Hash handelt (bitte empfehlen Sie eine Lösung). Wenn Sie die npm-Version verwenden, werden wir neu packen, sobald sich die Version ändert. Wenn React beispielsweise aktualisiert wird, haben wir Version + und neu packen.

happypack

happypack verbessert die Build-Geschwindigkeit erheblich. Es kann in mehrere Threads gepackt werden und der Cache beschleunigt auch den Neuaufbau.

devtool

eval wird für die Entwicklung verwendet und Source-Map wird für die Produktion verwendet (wird verwendet, um Anzeigeprobleme auf Kosten der Paketierungsgeschwindigkeit zu beheben, innerhalb eines akzeptablen Bereichs)

babel-loader

CacheDirectory merken

noParse && alias

Einige Bibliotheken müssen nicht analysiert werden, die noParse-Konfiguration analysiert nicht und der Alias ​​zeigt auf x.min .js-Datei.

Baumschütteln

Es wird nicht genutzt, es fühlt sich an, als wäre es noch nicht der richtige Zeitpunkt. Es gibt einen guten Artikel. Dein Tree-Shaking ist nutzlos

Komprimierung

UglifyJsPlugin

Am Anfang habe ich webpack.optimize.UglifyJsPlugin verwendet, das 1.x war In dieser Version basiert das Webpack auf uglify-js@2.x.

Da das Webpack jetzt separat erhältlich ist, verfügt es auch über viele weitere Funktionen. Es unterstützt Cache und Multi-Core-Komprimierung. Ich habe es ausprobiert und es war ziemlich schnell. webpack.optimize.UglifyJsPlugin ist eigentlich uglifyjs-webpack-plugin.

Was mich überrascht, ist, dass auf der offiziellen Website steht, dass es auf uglify-es basiert. Aber ich denke, die Abhängigkeit ist immer noch uglify-js. Fremdheit.

UglifyJsParallelPlugin

Vor der offiziellen Veröffentlichung habe ich webpack-uglify-parallel verwendet, das Multicore unterstützt. Die Geschwindigkeit unterscheidet sich nicht wesentlich vom uglifyjs-webpack-plugin.

Als ich den Artikel schrieb, habe ich Github durchgesehen und festgestellt, dass er im Juli aufgegeben und in die offizielle Website integriert wurde.

Andere

babel-minify-webpack-plugin von babel, bleiben Sie am Rande.

Skript-CD

Einige js (gm-fetch babel-polyfill) haben nur sehr wenige Änderungen. Das Packen mit Webpack ist etwas verschwenderisch. Sie können es über cdn abrufen und das Skriptformular einfügen HTML-Dokument.

Analyse

Es gibt Diagramme und sehr intuitive Analysen. Ich bevorzuge es.
Webpack-Monitor

Der alte ist Webpack-Bundle-Analyzer

Verwandte Empfehlungen:

Web-Beispielcode zum Erstellen von Front-End-Projekten mit Webpack

Zusammenfassung der Webpack-Konfigurationsmethoden

Detaillierte Erläuterung der NPM- und Webpack-Konfigurationsmethoden in node.js

Das obige ist der detaillierte Inhalt vonErfahrungsaustausch mit Webpacks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack VUE3-Erste-Schritte-Tutorial: Paketieren und Erstellen mit Webpack Jun 15, 2023 pm 06:17 PM

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

Verwendung von Jetty7 für die Webserververarbeitung in der Java-API-Entwicklung Verwendung von Jetty7 für die Webserververarbeitung in der Java-API-Entwicklung Jun 18, 2023 am 10:42 AM

Verwendung von Jetty7 für die Webserververarbeitung in der JavaAPI-Entwicklung Mit der Entwicklung des Internets ist der Webserver zum Kernbestandteil der Anwendungsentwicklung geworden und steht auch im Fokus vieler Unternehmen. Um den wachsenden Geschäftsanforderungen gerecht zu werden, entscheiden sich viele Entwickler für die Verwendung von Jetty für die Webserverentwicklung, und seine Flexibilität und Skalierbarkeit sind weithin anerkannt. In diesem Artikel wird erläutert, wie Sie Jetty7 für die Webentwicklung in der JavaAPI-Entwicklung verwenden.

So implementieren Sie die Formularvalidierung für Webanwendungen mit Golang So implementieren Sie die Formularvalidierung für Webanwendungen mit Golang Jun 24, 2023 am 09:08 AM

Die Formularvalidierung ist ein sehr wichtiger Link bei der Entwicklung von Webanwendungen. Sie kann die Gültigkeit der Daten vor dem Absenden der Formulardaten überprüfen, um Sicherheitslücken und Datenfehler in der Anwendung zu vermeiden. Die Formularvalidierung für Webanwendungen kann einfach mit Golang implementiert werden. In diesem Artikel wird erläutert, wie Sie mit Golang die Formularvalidierung für Webanwendungen implementieren. 1. Grundelemente der Formularvalidierung Bevor wir uns mit der Implementierung der Formularvalidierung befassen, müssen wir die Grundelemente der Formularvalidierung kennen. Formularelemente: Formularelemente sind

So aktivieren Sie den administrativen Zugriff über die Cockpit-Web-Benutzeroberfläche So aktivieren Sie den administrativen Zugriff über die Cockpit-Web-Benutzeroberfläche Mar 20, 2024 pm 06:56 PM

Cockpit ist eine webbasierte grafische Oberfläche für Linux-Server. Es soll vor allem neuen/erfahrenen Benutzern die Verwaltung von Linux-Servern erleichtern. In diesem Artikel besprechen wir die Cockpit-Zugriffsmodi und wie Sie den Administratorzugriff von CockpitWebUI auf das Cockpit umstellen. Inhaltsthemen: Cockpit-Eingabemodi Ermitteln des aktuellen Cockpit-Zugriffsmodus Aktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Deaktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Fazit Cockpit-Eingabemodi Das Cockpit verfügt über zwei Zugriffsmodi: Eingeschränkter Zugriff: Dies ist die Standardeinstellung für den Cockpit-Zugriffsmodus. In diesem Zugriffsmodus können Sie vom Cockpit aus nicht auf den Webbenutzer zugreifen

Was sind Webstandards? Was sind Webstandards? Oct 18, 2023 pm 05:24 PM

Webstandards sind eine Reihe von Spezifikationen und Richtlinien, die vom W3C und anderen verwandten Organisationen entwickelt wurden. Sie umfassen die Standardisierung von HTML, CSS, JavaScript, DOM, Web-Zugänglichkeit und Leistungsoptimierung , Wartbarkeit und Leistung. Das Ziel von Webstandards besteht darin, die konsistente Anzeige und Interaktion von Webinhalten auf verschiedenen Plattformen, Browsern und Geräten zu ermöglichen und so ein besseres Benutzererlebnis und eine bessere Entwicklungseffizienz zu gewährleisten.

Erfahrungsaustausch in der PHP-Entwicklung: Erfahrungen und Vorschläge zur Beherrschung der Implementierung verschiedener Funktionen Erfahrungsaustausch in der PHP-Entwicklung: Erfahrungen und Vorschläge zur Beherrschung der Implementierung verschiedener Funktionen Nov 22, 2023 pm 12:02 PM

Im gegenwärtigen Zeitalter der rasanten Entwicklung des Internets wird PHP als serverseitige Skriptsprache von immer mehr Entwicklern übernommen. PHP hat den Vorteil, dass es leicht zu erlernen, flexibel, Open Source und kostenlos ist und schnell verschiedene Websites und Webanwendungen entwickeln kann. Wenn Sie jedoch als PHP-Entwickler im harten Wettbewerb hervorstechen und effizienten und stabilen Code schreiben möchten, müssen Sie auch die Implementierungsfähigkeiten und Erfahrung verschiedener Funktionen beherrschen. Zunächst einmal ist eine vernünftige Planung der Projektarchitektur der Schlüssel zur Entwicklung von PHP-Anwendungen. Eine gute Projektstruktur kann eine bessere Wartbarkeit des Codes ermöglichen

Was bedeutet Web? Was bedeutet Web? Jan 09, 2024 pm 04:50 PM

Das Web ist ein globales Weitverkehrsnetz, auch World Wide Web genannt, eine Anwendungsform des Internets. Das Web ist ein auf Hypertext und Hypermedia basierendes Informationssystem, das es Benutzern ermöglicht, durch Hyperlinks zwischen verschiedenen Webseiten zu wechseln und Informationen abzurufen. Die Grundlage des Webs ist das Internet, das einheitliche und standardisierte Protokolle und Sprachen verwendet, um den Datenaustausch und Informationsaustausch zwischen verschiedenen Computern zu ermöglichen.

Ist PHP Front-End oder Back-End in der Webentwicklung? Ist PHP Front-End oder Back-End in der Webentwicklung? Mar 24, 2024 pm 02:18 PM

PHP gehört zum Backend in der Webentwicklung. PHP ist eine serverseitige Skriptsprache, die hauptsächlich zur Verarbeitung serverseitiger Logik und zur Generierung dynamischer Webinhalte verwendet wird. Im Vergleich zur Front-End-Technologie wird PHP eher für Back-End-Vorgänge wie die Interaktion mit Datenbanken, die Verarbeitung von Benutzeranfragen und die Generierung von Seiteninhalten verwendet. Anschließend wird anhand konkreter Codebeispiele die Anwendung von PHP in der Backend-Entwicklung veranschaulicht. Schauen wir uns zunächst ein einfaches PHP-Codebeispiel zum Herstellen einer Verbindung zu einer Datenbank und zum Abfragen von Daten an:

See all articles