Cette fois, je vais vous montrer comment gérer un fichier packé de trop grande taille. Quelles sont les précautions à prendre pour gérer un fichier packé de trop grande taille. Ce qui suit est un cas pratique, jetons un coup d'oeil. à cela ensemble.
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. Afin d'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****** J'omettrai quelques codes m ici
Problème :
Après avoir utilisé webpack dans l'environnement de développement, j'ai trouvé un seul fichier js de 5 min.
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 crois que je lisez 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 :
Le composant vue crée un menu à sélection multiple infini
Installer nodejs, npm et cnpm sur Mac
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!