Comment accélérer et optimiser le code vue-cli
Cette fois, je vais vous montrer comment accélérer et optimiser le code vue-cli Quelles sont les précautions pour accélérer et optimiser le code vue-cli. cas, jetons un coup d'oeil.
Avant-propos
Avec la mondialisation de Vue, divers frameworks de composants Vue sont devenus de plus en plus parfaits, depuis les premiers éléments-ui jusqu'à vux, iview et d'autres projets de haute qualité, l'utilisation de Vue pour la construction frontale est déjà une tâche d'ingénierie, Modularisation, choses agiles
Parmi eux, je pense que de nombreuses personnes choisiront le modèle de projet d'initialisation officiel vue-cli, puis le développeront et le construiront en introduisant des frameworks et des outils de composants tiers. Je recommande personnellement fortement cette approche. Cependant, le modèle de projet initialisé par vue-cli s'adresse à tous les développeurs après tout, et il y aura certains compromis en termes de compatibilité. Je pense que de nombreuses personnes ont recherché divers articles sur l'optimisation de la construction de webpacks, mais beaucoup d'entre eux sont soit trop anciens, soit peu rigoureux Cet article espère trouver un équilibre entre une optimisation fastidieuse et une amélioration des performances de build, c'est-à-dire passer le moins de temps et apporter le moins de modifications au modèle officiel pour obtenir une amélioration maximale des performances de buildPensées
Dans les premières versions de vue-cli et webpack2, les configurations optimisées suivantes circulaient sur Internet, mais en fait, les nouvelles versions de vue-cli et webpack3 ne nécessitent plus- Utilisez ParallelUglifyPlugin pour remplacer UglifyPlugin (la nouvelle version d'UglifyPlugin prend déjà en charge et active la construction parallèle multithread par défaut, cette étape n'est donc pas nécessaire) Activer Scope Hoisting de webpack3 (la nouvelle version de vue -cli a été configuré avec webapck3, Et cette configuration a été activée par défaut)
- Faites bon usage de l'alias (la nouvelle version de vue-cli a déjà fait ce travail)
- Configurer CommonsChunkPlugin pour extraire le code public (la nouvelle version de vue-cli l'a déjà fait)
- Référence sur demande Activer le projet de construction multicœur happypack
- Modifier la configuration de la carte source
- Activer DllPlugin et fichiers de bibliothèque précompilés DllReferencePlugin
Pratique
1. Devis sur demande
1.1 Presque tous les frameworks de composants tiers fournissent des méthodes de référence à la demande pour les composants. En prenant iview comme exemple, en utilisant le plug-in babel-plugin-import, vous pouvez charger des composants à la demande et réduire la taille du fichier. pour modifier le fichier .babelrc
npm install babel-plugin-import --save-dev // .babelrc { "plugins": [["import", { "libraryName": "iview", "libraryDirectory": "src/components" }]] }
import { Button } from 'iview' Vue.component('Table', Table)
2. Activer le projet de construction multicœur happypack
Après avoir installé happypack, modifiez le fichier /build/webpack.base.conf.jsnpm 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. Modifier la configuration de la carte source
3.1 Modifiez d'abord le fichier /config/index.js// /config/index.js dev环境:devtool: 'eval'(最快速度) prod环境:productionSourceMap: false(关闭source-map)
// /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
4. Activer les fichiers de bibliothèque précompilés DllPlugin et DllReferencePlugin
C'est l'étape la plus compliquée et la plus évidente pour améliorer l'effet. Le principe est de compiler et de conditionner les fichiers de bibliothèques tierces séparément une fois. Il n'est pas nécessaire de compiler et de conditionner les bibliothèques tierces dans les versions suivantes4.1 Ajoutez le fichier build/webpack.dll.config.js et configurez les modules qui doivent être DLL séparément
4.2 Ajoutez les plug-ins suivantsconst 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 } }) ] }
new webpack.DllReferencePlugin({ context: dirname, manifest: require('./vendor-manifest.json') })
"dll": "webpack --config ./build/webpack.dll.config.js"
<script src="/static/js/vendor.dll.js"></script>
npm run dll(这一步会生成build/vendor-manifest.json和static/js/vendor.dll.js) npm run dev 或 npm run build
Une fois les quatre étapes principales ci-dessus terminées, nous avons terminé l'optimisation et l'amélioration de la construction du projet de modèle vue-cli. Bien que cela ne semble toujours pas simple, c'est déjà l'optimisation la plus simple, et il y a plus de trucs et astuces par coïncidence. Je ne l'ai pas étendu car je pense que trop de configuration d'optimisation n'a que peu d'importance, mais apportera trop de redondance et de complexité au projet
L'effet réel de la construction de tests de la configuration ci-dessus a été réduit des 13 secondes d'origine à environ 6 secondes, et le déploiement à chaud a même duré des millisecondes
La chose la plus importante est que la configuration la plus simple peut être facilement reconfigurée et utilisée après la mise à niveau future de vue-cli et webpack vers de nouvelles versions. Après une configuration compétente, il ne faut que 5 minutes environ pour restaurer la configuration. Le simple fait de modifier la configuration en 5 minutes peut augmenter la vitesse de chaque build de plus de 2 fois. N'êtes-vous pas un peu excité :)
. Permettez-moi de dire quelques mots supplémentaires ici. En fait, la mise à niveau de webpack2 vers webpack3 est assez décevante, car elle ne résout toujours pas fondamentalement le problème d'une configuration trop complexe en tant que produit construit dans le but d'occuper tous les projets Web. dans le monde, cela devrait être considéré davantage du point de vue de la facilité d'utilisation/de l'humanité
Chaque fois que je regarde les différents .babelrc, .postcssrc.js... et divers .confs dans les fichiers du projet webpack , et même divers fichiers principaux, d'index et d'application. Je ne peux m'empêcher de me plaindre de la raison pour laquelle la construction frontale s'est développée ainsi. Dans un bon projet, il y a plus d'une douzaine de fichiers de configuration<.> , est-ce vraiment nécessaire ? Au départ, je pensais que webpack3 simplifierait tout cela, mais ce n'est pas le cas. Mais comme il n'y a aucun moyen de le changer pour le moment, ce que nous pouvons faire est de comprendre les principes autant que possible et de faire de notre mieux pour simplifier/. optimiser Je pense que vous maîtrisez la méthode de lecture de cet article. Pour plus de passionnant, veuillez prêter attention aux autres articles connexes sur le site Web PHP chinois !
Lecture recommandée :
HTML+JS pour implémenter une horloge numérique roulanteComment utiliser la garde de navigation de VueRouterExplication détaillée des étapes pour implémenter la pagination des tableaux à l'aide de vue+element
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Le garbage collection (GC) de Golang a toujours été un sujet brûlant parmi les développeurs. En tant que langage de programmation rapide, le garbage collector intégré de Golang peut très bien gérer la mémoire, mais à mesure que la taille du programme augmente, certains problèmes de performances surviennent parfois. Cet article explorera les stratégies d'optimisation GC de Golang et fournira quelques exemples de code spécifiques. La collecte des déchets dans le garbage collector de Golang Golang est basée sur un balayage de marque simultané (concurrentmark-s

Travailler avec des fichiers dans le système d'exploitation Linux nécessite l'utilisation de diverses commandes et techniques qui permettent aux développeurs de créer et d'exécuter efficacement des fichiers, du code, des programmes, des scripts et d'autres éléments. Dans l'environnement Linux, les fichiers portant l'extension « .a » sont d'une grande importance en tant que bibliothèques statiques. Ces bibliothèques jouent un rôle important dans le développement de logiciels, permettant aux développeurs de gérer et de partager efficacement des fonctionnalités communes sur plusieurs programmes. Pour un développement logiciel efficace dans un environnement Linux, il est crucial de comprendre comment créer et exécuter des fichiers « .a ». Cet article explique comment installer et configurer de manière complète le fichier Linux « .a ». Explorons la définition, l'objectif, la structure et les méthodes de création et d'exécution du fichier Linux « .a ». Qu'est-ce que L

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Depuis le lancement du ChatGLM-6B le 14 mars 2023, les modèles de la série GLM ont reçu une large attention et une grande reconnaissance. Surtout après que ChatGLM3-6B soit open source, les développeurs sont pleins d'attentes pour le modèle de quatrième génération lancé par Zhipu AI. Cette attente a finalement été pleinement satisfaite avec la sortie du GLM-4-9B. La naissance du GLM-4-9B Afin de donner aux petits modèles (10B et moins) des capacités plus puissantes, l'équipe technique de GLM a lancé ce nouveau modèle open source de la série GLM de quatrième génération : GLM-4-9B après près de six mois de exploration. Ce modèle compresse considérablement la taille du modèle tout en garantissant la précision, et offre une vitesse d'inférence plus rapide et une efficacité plus élevée. L’exploration de l’équipe technique du GLM n’a pas

Laravel est un framework de développement PHP populaire, mais il est parfois critiqué pour sa lenteur comme un escargot. Qu'est-ce qui cause exactement la vitesse insatisfaisante de Laravel ? Cet article fournira une explication détaillée des raisons pour lesquelles Laravel est aussi lent qu'un escargot sous plusieurs aspects, et la combinera avec des exemples de code spécifiques pour aider les lecteurs à mieux comprendre ce problème. 1. Problèmes de performances des requêtes ORM Dans Laravel, ORM (Object Relational Mapping) est une fonctionnalité très puissante qui permet

Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Laravel, en tant que framework PHP populaire, offre aux développeurs des fonctions riches et une expérience de développement pratique. Cependant, à mesure que la taille du projet augmente et que le nombre de visites augmente, nous pouvons être confrontés au défi des goulots d'étranglement en matière de performances. Cet article approfondira les techniques d'optimisation des performances de Laravel pour aider les développeurs à découvrir et à résoudre les problèmes de performances potentiels. 1. Optimisation des requêtes de base de données à l'aide du chargement différé d'Eloquent Lorsque vous utilisez Eloquent pour interroger la base de données, évitez

Le grand modèle bouleverse tout, et arrive finalement à la tête de cet éditeur. C'est aussi un Agent qui a été créé en une seule phrase. Comme ça, donnez-lui un article, et en moins d'une seconde, de nouvelles suggestions de titres sortiront. Par rapport à moi, on ne peut dire que cette efficacité est aussi rapide que l'éclair et aussi lente qu'un paresseux... Ce qui est encore plus incroyable, c'est que la création de cet Agent ne prend en réalité que quelques minutes. L'invite appartient à tante Jiang : Et si vous souhaitez également ressentir ce sentiment subversif, désormais, sur la base de la nouvelle plateforme intelligente Wenxin lancée par Baidu, chacun peut créer gratuitement son propre assistant intelligent. Vous pouvez utiliser les moteurs de recherche, les plates-formes matérielles intelligentes, la reconnaissance vocale, les cartes, les voitures et autres canaux écologiques mobiles Baidu pour permettre à davantage de personnes d'utiliser votre créativité ! Robin Li lui-même

Produit par 51CTO Technology Stack (WeChat ID : blog51cto) Mistral a publié son premier modèle de code Codestral-22B ! Ce qui est fou avec ce modèle, ce n'est pas seulement qu'il est formé sur plus de 80 langages de programmation, dont Swift, etc., que de nombreux modèles de code ignorent. Leurs vitesses ne sont pas exactement les mêmes. Il est nécessaire d'écrire un système de « publication/abonnement » en langage Go. Le GPT-4o ici est en cours de sortie, et Codestral remet le papier si vite qu'il est difficile de le voir ! Le modèle venant tout juste d’être lancé, il n’a pas encore été testé publiquement. Mais selon le responsable de Mistral, Codestral est actuellement le modèle de code open source le plus performant. Les amis intéressés par la photo peuvent se déplacer vers : - Faire un câlin : https
