Dans l'article précédent, nous avons fourni une image mentale des fonctions dans le fichier analyseSizeChange.ts. Dans cet article, découvrons comment le changement de taille réel est analysé.
import analyze from 'rollup-plugin-analyzer'; export default function analyzeSizeChange(packageDir: string) { let analyzePluginIterations = 0; return analyze({ summaryOnly: process.env.CI ? undefined : true, skipFormatted: process.env.CI ? true : undefined, onAnalysis: (analysis) => { }, }); }
l'analyse est importée depuis rollup-plugin-analyzer. Il a un objet comme paramètre avec des options :
summaryOnly — Uniquement le résumé du bundle de sortie et les graphiques à barres d'utilisation du module
skipFormatted — Ne pas afficher de chaîne formatée
onAnalysis — Rappel à invoquer avec l'objet d'analyse (j'ai copié la description ci-dessous pour onAnalysis depuis npm :)
la fonction sera invoquée avec :
- analyseObject (Objet)
- bundleSize (Number) — taille du bundle rendu en octets
- bundleOrigSize (Number) — taille du bundle d'origine en octets
- bundleReduction (Number) — pourcentage de réduction de la taille du bundle rendu
- moduleCount (Number) — Nombre de tous les modules inclus
- modules (Array) — tableau d'objets d'analyse de modules
- module (Objet)
- id (String) — chemin du module / identifiant du module rollup
- size (Number) — taille du code du module rendu en octets
- origSize (Number) — taille du code original du module en octets
- Dépendants (Array) — liste des identifiants/chemins de modules dépendants
- pourcentage (Nombre) — pourcentage de la taille du module par rapport à l'ensemble de l'ensemble
- réduction (Nombre) — pourcentage de réduction de la taille rendue
- renderExports (Array) — liste des exportations nommées utilisées
- suppriméExports (Array) — liste des exportations nommées inutilisées
Voyons combien de ces options sont réellement utilisées dans le fichier analyseSizeChange.
- bundleSize
-modules
C'est justement ceux-ci qui sont utilisés dans analyseSizeChange.ts
Mais dans quelles circonstances ce script est-il exécuté ? est-ce après avoir enregistré du code ? fait-il rapport sur une pull request ? Pour le savoir, nous devons aller là où le code nous mène.
Vous devez d'abord rechercher analyserSizeChange pour voir où il est utilisé. Il s'avère être utilisé dans script/getRollupConfig.ts
Ensuite, vous devrez découvrir où getRollupConfig est utilisé. Il est utilisé dans de nombreux packages.
mais j'ai choisi packages/client/rollup.config.ts, cette configuration de cumul est utilisée dans le script de build.
"scripts": { "build": "rollup - config rollup.config.ts - configPlugin rollup-plugin-swc3",
Donc, la réponse est que la taille du bundle changera lorsque vous créerez un package dans le code source du tRPC.
Chez Thinkthroo, nous étudions les grands projets open source et fournissons des guides architecturaux. Nous avons développé des composants resubale, construits avec le vent arrière, que vous pouvez utiliser dans votre projet. Nous proposons des services de développement Next.js, React et Node.
Prenez rendez-vous avec nous pour discuter de votre projet.
https://github.com/trpc/trpc/blob/next/scripts/analyzeSizeChange.ts
https://github.com/search?q=repo:trpc/trpc getRollupConfig&type=code
https://github.com/trpc/trpc/blob/3388c9691d122b9d4047b2de0caedcdf611354ab/packages/client/rollup.config.ts#L3
https://github.com/trpc/trpc/blob/3388c9691d122b9d4047b2de0caedcdf611354ab/scripts/getRollupConfig.ts#L9
https://www.npmjs.com/package/rollup-plugin-analyzer#options
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!