中文

检测与移除CommonJS包中的膨胀依赖

软件工程 2025-05-22 v4

摘要

JavaScript包聞名易於膨脹,這是一個顯著影響網頁應用性能和可維護性的因素。雖然網頁捆綁器和樹擺優化可以在客戶端應用中緩解此問題,但當前先進技術在客戶端應用中檢測和移除膨脹依賴方面存在限制。本文提出了首個針對服務端JavaScript應用中膨脹依賴的研究,專注於採用廣泛使用且高度動態的CommonJS模組系統。我們提出了一種基於跟蹤的動態分析方法,用於監控操作系統文件系統,以確定在運行時未訪問的依賴。為評估我們的方法, 我們策展了一個原始的91個CommonJS包,總計50,488個依賴。與當前的動態和靜態方法相比,我們的跟蹤分析在檢測膨脹依賴方面表現出更高的準確率。我們的分析將50,488個依賴中的50.6%識別為膨脹依賴:其中13.8%的直接依賴和51.3%的間接依賴。此外,僅通過清理依賴配置文件中的直接膨脹依賴即可移除大量不必要的間接膨脹依賴,同時保持功能正確性。

关键词

引用

@article{arxiv.2405.17939,
  title  = {Detecting and removing bloated dependencies in CommonJS packages},
  author = {Yuxin Liu and Deepika Tiwari and Cristian Bogdan and Benoit Baudry},
  journal= {arXiv preprint arXiv:2405.17939},
  year   = {2025}
}

备注

Accepted by Journal of Systems and Software (JSS)