suchen
HeimWeb-Frontendjs-TutorialSo beschleunigen und optimieren Sie den Vue-CLI-Code

Dieses Mal zeige ich Ihnen, wie Sie den Vue-CLI-Code beschleunigen und optimieren können. Was sind die Vorsichtsmaßnahmen, um den Vue-CLI-Code zu beschleunigen und zu optimieren? Fall, werfen wir einen Blick darauf.

Vorwort

Mit der Globalisierung von Vue sind verschiedene Vue-Komponenten-Frameworks immer perfekter geworden. Von der frühen Element-UI bis hin zu Vux, iview und anderen hochwertigen Projekten ist die Verwendung von Vue für die Front-End-Konstruktion bereits eine technische Aufgabe >Modularisierung, Agile Dinge

Ich glaube, dass viele Leute die offizielle Vue-Cli-Initialisierungsprojektvorlage wählen und sie dann durch die Einführung von Komponenten-Frameworks und -Tools von Drittanbietern entwickeln und erstellen werden. Ich persönlich empfehle diesen Ansatz wärmstens. Allerdings ist die von vue-cli initialisierte Projektvorlage schließlich für alle Entwickler gedacht und es wird gewisse Kompromisse hinsichtlich der Kompatibilität geben. Ich glaube, viele Leute haben nach verschiedenen Artikeln zur Optimierung des Webpack-Aufbaus gesucht, aber viele davon sind entweder zu alt oder nicht streng

Ziel dieses Artikels ist es, ein Gleichgewicht zwischen zeitaufwändiger Optimierung und Verbesserung der Build-Leistung zu finden, d

Gedanken

In den frühen Versionen von vue-cli und webpack2 wurden die folgenden optimierten Konfigurationen im Internet verbreitet, aber tatsächlich erfordern die neuen Versionen von vue-cli und webpack3 kein

mehr Verwenden Sie ParallelUglifyPlugin, um UglifyPlugin zu ersetzen (die neue Version von UglifyPlugin unterstützt und aktiviert bereits standardmäßig Multithread-Parallel-Builds, daher ist dieser Schritt nicht erforderlich)
  1. Schalten Sie Scope Hoisting von webpack3 (der neuen Version von vue -cli wurde mit webapck3 konfiguriert und diese Konfiguration ist standardmäßig aktiviert)

  2. Alias ​​gut nutzen (die neue Version von vue-cli hat diese Arbeit bereits erledigt)

  3. CommonsChunkPlugin so konfigurieren, dass der öffentliche Code extrahiert wird (die neue Version von vue-cli hat dies bereits getan)

  4. Für die neue Version von vue-cli und webpack3 kann die folgende einfache Konfiguration die Build-Geschwindigkeit nach der Optimierung um mindestens das Zweifache erhöhen

Referenz auf Anfrage
  1. Happypack-Multi-Core-Build-Projekt aktivieren

  2. Quellkartenkonfiguration ändern

  3. DllPlugin aktivieren und DllReferencePlugin Vorkompilierte Bibliotheksdateien

  4. Üben

1. Angebot auf Anfrage

1.1 Fast alle Komponenten-Frameworks von Drittanbietern bieten On-Demand-Referenzmethoden für Komponenten. Mithilfe des Plug-Ins babel-plugin-import können Sie Komponenten bei Bedarf laden und die Dateigröße reduzieren um die .babelrc-Datei zu ändern

1.2 Fügen Sie dann nach Bedarf Komponenten hinzu, um die Größe zu reduzieren

npm install babel-plugin-import --save-dev
// .babelrc
{
 "plugins": [["import", {
 "libraryName": "iview",
 "libraryDirectory": "src/components"
 }]]
}

2. Happypack-Multi-Core-Build-Projekt aktivieren
import { Button } from 'iview'
Vue.component('Table', Table)

Ändern Sie nach der Installation von Happypack die Datei /build/webpack.base.conf.js

3. Ändern Sie die Quellkartenkonfiguration
npm install happypack --save-dev
// /build/webpack.base.conf.js
const HappyPack = require('happypack')
const os = require('os')
const happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length })
// 增加HappyPack插件
plugins: [
 new HappyPack({
  id: 'happy-babel-js',
  loaders: ['babel-loader?cacheDirectory=true'],
  threadPool: happyThreadPool,
 })
 ]
// 修改引入loader
{
 test: /\.js$/,
 // loader: 'babel-loader',
 loader: 'happypack/loader?id=happy-babel-js', // 增加新的HappyPack构建loader
 include: [resolve('src'), resolve('test')]
}

3.1 Ändern Sie zunächst die Datei /config/index.js

3.2 Ändern Sie dann die Datei /src/main.js und deaktivieren Sie die Debugging-Informationen der Produktionsumgebung

// /config/index.js
dev环境:devtool: 'eval'(最快速度)
prod环境:productionSourceMap: false(关闭source-map)

4. Aktivieren Sie die vorkompilierten Bibliotheksdateien DllPlugin und DllReferencePlugin
// /src/main.js
const isDebug_mode = process.env.NODE_ENV !== 'production'
Vue.config.debug = isDebug_mode
Vue.config.devtools = isDebug_mode
Vue.config.productionTip = isDebug_mode

Dies ist der komplizierteste Schritt und der offensichtlichste Schritt zur Verbesserung des Effekts. Das Prinzip besteht darin, die Bibliotheksdateien von Drittanbietern einmal separat zu kompilieren und zu packen. Es ist nicht erforderlich, die Bibliotheken von Drittanbietern in nachfolgenden Builds zu kompilieren und zu packen > 4.1 Fügen Sie die Datei build/webpack.dll.config.js hinzu und konfigurieren Sie die Module, die separat per DLL ausgeführt werden müssen

4.2 Fügen Sie die folgenden Plug-Ins

const path = require("path")
const webpack = require("webpack")
module.exports = {
 // 你想要打包的模块的数组
 entry: {
  vendor: ['vue/dist/vue.esm.js', 'axios', 'vue-router', 'iview']
 },
 output: {
  path: path.join(dirname, '../static/js'), // 打包后文件输出的位置
  filename: '[name].dll.js',
  library: '[name]_library'
 },
 plugins: [
  new webpack.DllPlugin({
   path: path.join(dirname, '.', '[name]-manifest.json'),
   name: '[name]_library',
   context: dirname
  }),
  // 压缩打包的文件
  new webpack.optimize.UglifyJsPlugin({
   compress: {
    warnings: false
   }
  })
 ]
}
zu build/webpack.dev.conf.js und build/webpack.prod.conf.js hinzu 4.3 Fügen Sie den Befehl

new webpack.DllReferencePlugin({
  context: dirname,
  manifest: require('./vendor-manifest.json')
})
in /package.json hinzu 4.4 DLL-basierte JS-Einführung in /index.html hinzufügen (muss zuerst eingeführt werden)

"dll": "webpack --config ./build/webpack.dll.config.js"
4.5 Führen Sie den Build aus

<script></script>

Postskriptum

npm run dll(这一步会生成build/vendor-manifest.json和static/js/vendor.dll.js)
npm run dev 或 npm run build

Nachdem die oben genannten vier Hauptschritte abgeschlossen sind, haben wir die Optimierung und Verbesserung des vue-cli-Vorlagenprojekts abgeschlossen. Obwohl es immer noch nicht einfach zu sein scheint, ist dies bereits die einfachste Optimierung, und es gibt noch mehr Tricks und Tricks Ich habe es nicht erweitert, weil ich denke, dass zu viel Optimierungskonfiguration von geringer Bedeutung ist, aber zu viel Redundanz und Komplexität in das Projekt bringen wird Der tatsächliche Test-Build-Effekt der obigen Konfiguration wurde von ursprünglich 13 Sekunden auf etwa 6 Sekunden reduziert, und die Hot-Bereitstellung betrug sogar Millisekunden

Das Wichtigste ist, dass die einfachste Konfiguration problemlos neu konfiguriert und verwendet werden kann, nachdem vue-cli und webpack in Zukunft auf neue Versionen aktualisiert wurden. Nach einer kompetenten Konfiguration dauert die Wiederherstellung der Konfiguration nur etwa 5 Minuten. Allein die Änderung der Konfiguration in 5 Minuten kann die Geschwindigkeit jedes Builds um mehr als das Zweifache erhöhen. Sind Sie nicht ein wenig aufgeregt? Lassen Sie mich hier noch ein paar Worte sagen. Tatsächlich ist das Upgrade von Webpack2 auf Webpack3 für mich ziemlich enttäuschend, da es das Problem der übermäßig komplexen Konfiguration immer noch nicht löst in der Welt, Es sollte mehr aus der Perspektive der Benutzerfreundlichkeit/Menschlichkeit betrachtet werden

Jedes Mal schaue ich mir die verschiedenen .babelrc, .postcssrc.js ... und verschiedenen .confs in den Webpack-Projektdateien an und sogar verschiedene Haupt-, Index- und App-Dateien. Ich kann nicht anders, als mich darüber zu beschweren, warum sich die Front-End-Konstruktion so entwickelt hat. In einem guten Projekt gibt es mehr als ein Dutzend

Konfigurationsdateien

, ist es wirklich notwendig? Ich dachte ursprünglich, dass webpack3 das alles einfacher machen würde, aber das war nicht der Fall. Da es jedoch vorerst keine Möglichkeit gibt, dies zu ändern, können wir die Prinzipien so gut wie möglich verstehen und unser Bestes geben, um sie zu vereinfachen. optimieren Ich glaube, dass Sie die Methode zum Lesen dieses Artikels beherrschen. Weitere spannende Artikel finden Sie auf der chinesischen PHP-Website.

Empfohlene Lektüre:

HTML+JS zur Implementierung einer rollenden Digitaluhr


So verwenden Sie den Navigationsschutz von VueRouter


Detaillierte Erläuterung der Schritte zur Implementierung der Tabellenpaginierung mit vue+element

                                   

Das obige ist der detaillierte Inhalt vonSo beschleunigen und optimieren Sie den Vue-CLI-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Python vs. JavaScript: Entwicklungsumgebungen und ToolsPython vs. JavaScript: Entwicklungsumgebungen und ToolsApr 26, 2025 am 12:09 AM

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.

Ist JavaScript in C geschrieben? Prüfung der BeweiseIst JavaScript in C geschrieben? Prüfung der BeweiseApr 25, 2025 am 12:15 AM

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScripts Rolle: das Web interaktiv und dynamisch machenJavaScripts Rolle: das Web interaktiv und dynamisch machenApr 24, 2025 am 12:12 AM

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript: Die Verbindung erklärteC und JavaScript: Die Verbindung erklärteApr 23, 2025 am 12:07 AM

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptVon Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptApr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python gegen JavaScript: Anwendungsfälle und Anwendungen verglichenPython gegen JavaScript: Anwendungsfälle und Anwendungen verglichenApr 21, 2025 am 12:01 AM

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

Die Rolle von C/C bei JavaScript -Dolmetschern und CompilernDie Rolle von C/C bei JavaScript -Dolmetschern und CompilernApr 20, 2025 am 12:01 AM

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

JavaScript in Aktion: Beispiele und Projekte in realer WeltJavaScript in Aktion: Beispiele und Projekte in realer WeltApr 19, 2025 am 12:13 AM

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

See all articles

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

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools