Cette fois, je vais vous expliquer comment gérer les gros fichiers packagés par webpack, et quelles sont les précautions sur la façon de gérer les gros fichiers packagés par webpack. Voici des cas pratiques, jetons un coup d'œil.
Comparaison d'optimisation :
Avant optimisation : index.html introduit un fichier main.js d'une taille supérieure à 2M.
Après optimisation : index.html introduit main.js, commons.js, charts.js et other.js. Pour atteindre l’objectif de diviser main.js de manière égale. Chaque fichier est contrôlé dans la limite de 300k. (Si vous êtes satisfait, 100k n'est pas un problème)
Un tas de bibliothèques et d'outils utilisés :
vue, webpack, babel, highcharts, echarts, jquery, html2canvas***** Je vais omettre certains codes m
Problème :
Après avoir utilisé webpack dans le environnement de développement, j'ai trouvé un seul fichier js 5m.
L'environnement de production est réduit à 2m grâce à la configuration du webpack de vue-cli.
Solution :
Rechercher diverses solutions : require.ensure, require dépendance, entrées multiples, commonsChunkPlugin****Voici quelques solutions pour économiser des efforts
Il existe trop de solutions comme celle ci-dessous sur Internet, mais elles ne parviennent pas toutes à atteindre les résultats escomptés
entry:{ main:'xxx.js', chunks:['c1', 'c2'], commons:['jquery', 'highcharts', 'echarts','d3', 'xxxxx.js'] } plugins:{ new commonsChunkPlugin({ name:'commons', minChunks:2 }) }
La solution optimale :
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 }
Je te crois J'ai lu le cas dans cet article. Vous maîtrisez la méthode. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Explication détaillée des étapes à suivre pour utiliser le composant intégré select de Vue
Éviter le nouveau rendu lors de l'utilisation de React
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!