


Dieser Artikel stellt hauptsächlich die detaillierte Erklärung des Webpack3-Aufbaus und der umfassenden Beschleunigungsoptimierung vor. Jetzt teile ich ihn mit Ihnen und gebe Ihnen eine Referenz.
Vorwort
Mit der Globalisierung von Vue wurden verschiedene Vue-Komponenten-Frameworks immer perfekter, von der frühen Element-UI über Vux, Iview bis hin zu immer hochwertigeren Projekten Vue für die Front-End-Konstruktion ist bereits eine technische, modulare und agile Sache.
Darunter glaube ich, dass viele Leute die offizielle Vue-CLI-Initialisierungsprojektvorlage wählen und dann einen Drittanbieter zum Entwickeln und Erstellen einführen werden Ich persönlich kann diesen Ansatz nur wärmstens empfehlen. 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 Webpack-Build-Optimierung gesucht, aber viele davon sind entweder zu alt oder nicht streng
Dieser Artikel hofft, ein Gleichgewicht zwischen zeitaufwändiger Optimierung und Verbesserung der Build-Leistung zu finden, d. h. Verbringen Sie möglichst wenig Zeit, nehmen Sie nur minimale Änderungen an der offiziellen Vorlage vor und erzielen Sie die maximale Verbesserung der Build-Leistung
Ideen
Frühe Versionen von vue-cli und webpack2 waren Im Internet verbreitete sich die folgende optimierte Konfiguration, aber tatsächlich müssen die neuen Versionen von vue-cli und webpack3 nicht mehr ParallelUglifyPlugin verwenden, um UglifyPlugin zu ersetzen (die neue Version von UglifyPlugin unterstützt und ermöglicht bereits standardmäßig die parallele Multithread-Konstruktion, also Dieser Schritt ist nicht erforderlich)
Scope Hoisting von webpack3 aktivieren (die neue Version von vue-cli wurde mit webapck3 konfiguriert und diese Konfiguration wurde standardmäßig aktiviert)
Alias gut nutzen (die neue Version von vue-cli hat dies bereits getan)
Konfigurieren Sie CommonsChunkPlugin zum Extrahieren von öffentlichem Code (die neue Version von vue -cli hat dies bereits getan)
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
Happypack-Multi-Core-Build-Projekt aktivieren
-
Quellkartenkonfiguration ändern
Vorkompilierte DllPlugin- und DllReferencePlugin-Bibliotheksdateien aktivieren
- Üben
Referenz auf Anfrage
1.1 Fast alle Komponenten-Frameworks von Drittanbietern bieten eine On-Demand-Referenzmethode für Komponenten, am Beispiel von iview. Mithilfe des Plug-Ins babel-plugin-import können Komponenten geladen werden Sie müssen nur die .babelrc-Datei npm install babel-plugin-import --save-dev
// .babelrc
{
"plugins": [["import", {
"libraryName": "iview",
"libraryDirectory": "src/components"
}]]
}
1.2 ändern und dies dann bei Bedarf tun. Durch die Einführung von Komponenten kann die Größe reduziert werden
import { Button } from 'iview' Vue.component('Table', Table)2. Aktivieren Sie das Happypack-Multi-Core-Build-Projekt
Ändern Sie nach der Installation von Happypack /build/webpack.base.conf.js. Die Datei kann 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 zuerst die Datei /config/index.js // /config/index.js
dev环境:devtool: 'eval'(最快速度)
prod环境:productionSourceMap: false(关闭source-map)
3.2 Ändern Sie dann die Datei /src/main.js und deaktivieren Sie die Debugging-Informationen der Produktionsumgebung
// /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_mode4. Aktivieren Sie die vorkompilierten Bibliotheksdateien DllPlugin und DllReferencePlugin
Dies ist der komplizierteste und effektivste Schritt. Der offensichtliche Schritt besteht darin, die Bibliothek eines Drittanbieters zu kompilieren und zu packen Dateien müssen nicht einmal separat kompiliert und für nachfolgende Builds gepackt werden 4.1 Fügen Sie die Datei build/webpack.dll.config.js hinzu und fügen Sie sie hinzu. Konfigurieren Sie Module, die eine separate DLL erfordern
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 } }) ] }
4.2 Fügen Sie die folgenden Plug-Ins in build/webpack.dev.conf.js und build/webpack.prod.conf.js hinzu
new webpack.DllReferencePlugin({ context: __dirname, manifest: require('./vendor-manifest.json') })
4.3 in /package Befehl hinzufügen
"dll": "webpack --config ./build/webpack.dll.config.js"
4.4 DLL JS-Einführung in /index.html hinzufügen (muss zuerst eingeführt werden)
<script src="/static/js/vendor.dll.js"></script>
4.5 Build ausführen
npm run dll(这一步会生成build/vendor-manifest.json和static/js/vendor.dll.js) npm run dev 或 npm run buildPostscript
Nachdem die oben genannten vier Hauptschritte abgeschlossen sind, haben wir die Optimierung und Verbesserung der Vue-CLI-Vorlagenprojektkonstruktion abgeschlossen. Obwohl es immer noch nicht einfach zu sein scheint, ist dies bereits die einfachste Optimierung wurde entwickelt, weil ich der Meinung bin, dass zu viel optimierte Konfiguration von geringer Bedeutung ist, aber zu viel Redundanz und Komplexität in das Projekt mit sich bringt Der Konstruktionseffekt des tatsächlichen Tests der oben genannten Konfiguration wurde gegenüber dem reduziert ursprünglich 13 Sekunden bis etwa 6 Sekunden, und die Hot-Bereitstellung dauert sogar Millisekunden
Das Wichtigste ist, dass die einfachste Konfiguration auch verwendet werden kann, nachdem vue-cli und Webpack in Zukunft auf neue Versionen aktualisiert wurden Es ist einfach, es neu zu konfigurieren und zu verwenden. Die Wiederherstellung der Konfiguration dauert nur etwa 5 Minuten. Wenn Sie 5 Minuten für die Änderung der Konfiguration aufwenden, kann dies die Geschwindigkeit jedes Builds um mehr als das Zweifache erhöhen Ist es ein bisschen klein? 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. Da das Ziel darin besteht, dass das Produkt, das alle Webprojekte auf der ganzen Welt dominiert, mehr aus der Perspektive der Benutzerfreundlichkeit/Menschlichkeit betrachtet werden sollte
Jedes Mal, wenn ich mir die verschiedenen .babelrc, .postcssrc.js im Webpack ansehe Projekt ... Es gibt auch verschiedene .conf-Dateien und sogar verschiedene Haupt-, Index- und App-Dateien. Ich kann nicht anders, als mich darüber zu beschweren, warum sich die Front-End-Konstruktion in einem guten Projekt so entwickelt hat Sind mehrere Konfigurationsdateien 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
Das Obige habe ich für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Verwenden Sie die benutzerdefinierte js-Trimmfunktion, um Leerzeichen an beiden Enden zu entfernen
Alle auswählen und Auswahl in Vue umkehren
Detaillierte Erklärung der Verwendung von Jest zum Testen nativer React-Komponenten
Alle Implementierungen auswählen Daten in Vue-Bindung und -Erfassung
Zeit-Plugin in Mint-UI verwenden und Auswahlwert erhalten
VUE2 realisiert sekundäre Provinz- und Stadtverknüpfung Auswahl
Das obige ist der detaillierte Inhalt vonProbleme im Zusammenhang mit der Webpack3-Geschwindigkeitsoptimierung in vue-cli. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

本篇文章带大家聊聊vue指令中的修饰符,对比一下vue中的指令修饰符和dom事件中的event对象,介绍一下常用的事件修饰符,希望对大家有所帮助!

如何覆盖组件库样式?下面本篇文章给大家介绍一下React和Vue项目中优雅地覆盖组件库样式的方法,希望对大家有所帮助!

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。

在VSCode中开发Vue/React组件时,怎么实时预览组件?本篇文章就给大家分享一个VSCode 中实时预览Vue/React组件的插件,希望对大家有所帮助!

本篇文章给大家分享一个Vue+Laravel开发教程,介绍一下怎么使用 Vue.js 和 Laravel 共建一个简单的 CRUD 应用,希望对大家有所帮助!


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

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version
