Heim > Artikel > Web-Frontend > Umgang mit der Paketdateigröße ist zu groß
Dieses Mal zeige ich Ihnen, wie Sie mit einer gepackten Datei umgehen, die zu groß ist. Was sind die Vorsichtsmaßnahmen für den Umgang mit einer gepackten Datei, die zu groß ist? Das Folgende ist ein praktischer Fall gemeinsam daran.
Optimierungsvergleich:
Vor der Optimierung: index.html führt eine main.js-Datei mit einer Größe von mehr als 2 MB ein.
Nach der Optimierung: index.html führt main.js, commons.js, charts.js und other.js ein. Um den Zweck der gleichmäßigen Aufteilung von main.js zu erreichen. Jede Datei wird innerhalb von 300 KB kontrolliert (Wenn Sie zufrieden sind, sind 100 KB kein Problem)
Eine Reihe verwendeter Bibliotheken und Tools:
vue, webpack, babel, Highcharts, Echarts, JQuery, HTML2Canvas ****** Ich werde hier einige M-Codes weglassen
Problem:
Nach der Verwendung von Webpack in der Entwicklungsumgebung habe ich festgestellt eine einzelne JS-Datei von 5 m.
Die Produktionsumgebung wird mithilfe der Webpack-Konfiguration von vue-cli auf 2 m reduziert.
Lösung:
Suchen Sie nach verschiedenen Lösungen: require.ensure, require dependency, multiple entries, commonsChunkPlugin****Hier sind einige Lösungen, um Aufwand zu sparen
Es gibt zu viele Lösungen wie die unten aufgeführten im Internet, aber alle erzielen nicht die erwarteten Ergebnisse
entry:{ main:'xxx.js', chunks:['c1', 'c2'], commons:['jquery', 'highcharts', 'echarts','d3', 'xxxxx.js'] } plugins:{ new commonsChunkPlugin({ name:'commons', minChunks:2 }) }
Die optimale Lösung:
entry:{ main:'xxx.js' } plugins:{ new commonsChunkPlugin({ name:'commons', minChunks:function(module){ // 下边return参考的vue-cli配置 // any required modules inside node_modules are extracted to vendor return ( module.resource && /\.js$/.test(module.resource) && module.resource.indexOf( path.join(__dirname, '../node_modules') ) === 0 ) } }) , // 以下才是关键 new commonsChunkPlugin({ name:'charts', chunks:['commons'] minChunks:function(module){ return ( module.resource && /\.js$/.test(module.resource) && module.resource.indexOf( path.join(__dirname, '../node_modules') ) === 0 && ['jquery.js', 'highcharts.js','echarts'].indexOf( module.resource.substr(module.resource.lastIndexOf('/')+1).toLowerCase() ) != -1 ) } }) // 如果愿意,可以再new 一个commonsChunkPlugin }
Ich glaube, Sie haben es hinterher gemeistert Lesen Sie den Fall in dieser Artikelmethode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Vue-Komponente macht unendliches Mehrfachauswahlmenü
NodeJS, NPM und CNPM auf dem Mac installieren
Das obige ist der detaillierte Inhalt vonUmgang mit der Paketdateigröße ist zu groß. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!