在上一篇文章中,我們提供了analyzeSizeChange.ts檔案中函數的示意圖,在本文中,我們來看看如何分析實際的大小變化。
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) => { }, }); }
analyze 是從 rollup-plugin-analyzer 導入的。它有一個物件作為帶有選項的參數:
summaryOnly — 僅輸出包摘要和模組使用情況條形圖
skipFormatted — 不輸出格式化字串
onAnalysis — 使用分析物件呼叫的回呼(我從 npm 複製了 onAnalysis 的以下描述:)
函數將被呼叫:
- 分析對象(對象)
- bundleSize (Number) — 渲染的套件大小(以位元組為單位)
- bundleOrigSize (Number) — 原始套件大小(以位元組為單位)
- bundleReduction (Number) — 渲染包大小減少的百分比
- moduleCount (Number) — 所有包含的模組的計數
- module (Array) — 模組分析物件陣列
- 模組(物件)
- id (String) — 模組路徑/匯總模組 id
- size (Number) — 渲染模組程式碼的大小(以位元組為單位)
- origSize (Number) — 模組原始碼的大小(以位元組為單位)
- dependents (Array) — 依賴模組 ID/路徑清單
- 百分比(數字)— 模組大小相對於整個套件的百分比
- 減少(數字)- 渲染大小減少的百分比
- renderExports (Array) — 使用的命名導出清單
-removedExports (Array) — 未使用的命名匯出清單
讓我們看看有多少選項在analyzeSizeChange 檔案中實際使用。
- 捆綁包大小
- 模組
就是在analyzeSizeChange.ts發現使用了這些
但是這個腳本是在什麼情況下執行的呢?是在你簽入一些程式碼之後嗎?它會報告拉取請求嗎?為了找到答案,我們需要去程式碼帶我們去的地方。
您必須先搜尋analyzeSizeChange以查看它的用途。發現在script/getRollupConfig.ts
中使用接下來,您必須找出 getRollupConfig 的用途。它被用在很多包中。
但我選擇了packages/client/rollup.config.ts,這個rollup設定在建置腳本中使用。
"scripts": { "build": "rollup - config rollup.config.ts - configPlugin rollup-plugin-swc3",
所以答案是,當您在 tRPC 原始程式碼中建立套件時,套件的大小將會改變。
關於我們:
在 Thinkthroo,我們研究大型開源專案並提供架構指南。我們開發了使用 tailwind 建立的 resubale 元件,您可以在您的專案中使用它們。我們提供 Next.js、React 和 Node 開發服務。
與我們預約會面討論您的專案。
參考資料:
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
以上是trpc 腳本中 rollup-plugin-analyzer 的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何對多個鏈接進行並發GET請求並依次判斷返回結果?在Tampermonkey腳本中,我們經常需要對多個鏈...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器