Erfahrungsaustausch mit Webpacks
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'})
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']})
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 } }
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!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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

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.

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

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

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.

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

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.

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:
