Not All Dependencies are Equal: An Empirical Study on Production Dependencies in NPM
Jasmine Latendresse, Suhaib Mujahid, Diego Elias Costa, Emad Shihab

TL;DR
This empirical study of 100 npm projects reveals that less than 1% of dependencies are used in production, highlighting the need for better tools to identify and prioritize production dependencies for security.
Contribution
It provides the first comprehensive analysis of production dependencies in npm projects, challenging assumptions and emphasizing the importance of prioritizing security for production-relevant dependencies.
Findings
Less than 1% of dependencies are released to production.
Many dependencies configured for runtime are not used in production.
Most security alerts target dependencies not used in production.
Abstract
Modern software systems are often built by leveraging code written by others in the form of libraries and packages to accelerate their development. While there are many benefits to using third-party packages, software projects often become dependent on a large number of software packages. Consequently, developers are faced with the difficult challenge of maintaining their project dependencies by keeping them up-to-date and free of security vulnerabilities. However, how often are project dependencies used in production where they could pose a threat to their project's security? We conduct an empirical study on 100 JavaScript projects using the Node Package Manager (npm) to quantify how often project dependencies are released to production and analyze their characteristics and their impact on security. Our results indicate that less than 1% of the installed dependencies are released to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Web Application Security Vulnerabilities · Security and Verification in Computing
