Q1 2021 JavaScript Build Tools and Module Bundlers report
Intro
The landscape of JavaScript build tools and module bundlers is very dynamic at the moment. Developers experiment with new approaches. Some of them look very promising and already got traction in the community.
Hence, I thought that area of JavaScript ecosystem deserves a closer look at it. It would be interesting to capture a short period of time, Q1 2021, and see what were the dynamics, have look at the tools from different angles and see how they performed, compare them side by side.
I used the same approach and the same data sources as in other reports dedicated to JavaScript ecosystem.
If interested, I recommend checking out other reports as well: Frontend Frameworks, State Management Libraries, Testing Frameworks, Static Sites Generators (JAMStack), and End-to-End Testing Frameworks.
Data Sources
Data for the report came from:
- NPM - libraries downloads, releases, types, and dependencies.
- GitHub - stars, commits, contributors, license, and age.
- State of JavaScript Survey - libraries usage amongst developers.
- ThoughtWorks's Technology Radar data.
- Snyk - security information.
Metrics
- Stars - the total number of GitHub stars as of April 1, 2021.
- New Stars - a number of new stars in Q1 2021.
- New Stars, % - (100 * New Stars) / (Stars - New Stars)
- NPM Downloads monthly - an average monthly npm downloads number in Q1 2021.
- NPM Downloads monthly % (incr.) - an increase of the average monthly npm downloads number compared to Q4 2020.
- Developer Usage, % - percentage of developers using a library according to the latest StateOfJS 2020 survey.
- ThoughtWorks Tech Radar - a "ring" where a library was put. ThoughtWorks distinguishes four rings - "Adopt", "Trial", "Assess", and "Hold". You can learn more about the Radar here.
- NPM Releases - a number of NPM releases in Q1 2021.
- Commits - a number of commits in Q1 2021.
- Contributors - a number of contributors in Q1 2021.
- Dependencies - a number of NPM packages a library has in its dependencies list.
- Types - the way typings are provided, either bundled with the package (
BUNDLED
) or published to the @types organization on npm (SEPARATE
). - Security - calculated by Snyk a level of security (from
A
toF
) of Npm packages based on the number of vulnerabilities and their severity.A
- no vulnerabilities,F
- the least secure level. - Age
- License
Report
Hint: scroll horizontally to see values for all the libraries.
Each library has two links - Moiva and GitHub links. Use Moiva link to see more data about a particular library, to see historical data and trends.
Criteria | |||||||||
---|---|---|---|---|---|---|---|---|---|
Stars | 58K | 20K | 38K | 18K | 24K | 23K | 3.8K | 14K | 6K |
New Stars | 1.2K | 565 | 703 | 3.1K | 9.4K | 6.3K | 596 | 167 | 387 |
New Stars, % | 2.1% | 2.9% | 1.9% | 21% | 68% | 38% | 19% | 1.2% | 7% |
Monthly | 64M | 17M | 95K | 142K | 168K | 1.1M | 1.2K | 5M | 91K |
Monthly % (incr.) | 14% | 38% | 18% | 101% | 260% | 189% | 25% | 11% | 14% |
Developer Usage, % | 88.7% | 30.1% | 27.4% | 5.4% | - | 5.5% | - | 34.9% | - |
Tech Radar | TRIAL | - | ASSESS | ASSESS | - | - | - | - | - |
Releases | 36 | 28 | 0 | 18 | 12 | 43 | 10 | 0 | 0 |
Commits | 416 | 107 | 130 | 514 | 1002 | 492 | 339 | 1 | 4 |
Contributors | 8 | 11 | 21 | 33 | 58 | 20 | 14 | 1 | 4 |
Dependencies | 23 | 1 | 21 | 10 | 4 | 0 | 1 | 48 | 39 |
Types | BUNDLED | BUNDLED | - | BUNDLED | BUNDLED | BUNDLED | BUNDLED | SEPARATE | - |
Security | |||||||||
Age | 9 years | 6 years | 4 years | 2 years | 12 months | 5 years | 11 months | 11 years | 3 years |
License | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT | MIT |
Popularity: GitHub Stars
Webpack is the oldest tool in the report (after Browserify), it is very mature and it holds the biggest number of GitHub stars, 58k stars in total.
The situation changes quickly though and new tools gain popularity at lightning speed. Vite, a year-old project, has already acquired 24k stars and doesn't show any signs of slowing down - it obtained a phenomenal number of stars in Q1 2021, 9.4K stars.
Vite is not only a leader in absolute growth (by GitHub stars), but it is also a leader in relative growth. It grew by 68% in Q1 2021.
Esbuild also grew significantly by 38%.
Popularity: NPM Downloads
Webpack's 64M monthly downloads leave other libraries far away. It definitely is the most adopted tool so far.
Vite's monthly downloads increased by 260% till 168K. Esbuild's downloads also grew significantly by 189% till 1.1M.
Snowpack showed a nice growth of 101% till 142K monthly downloads.
Development Activity: commits, releases, and contributors
Vite is leading in almost every metric. The same with Development Activity metric. In Q1 2021 Vite got an astonishing amount of commits, 1002 commits, that is 11 commits per day on average. The commits came from 58 contributors.
Esbuild on the other hand produced the biggest number of new versions - 43.
Further Reading
If you want to see a comparison of the tools in terms of functionality, I recommend reading this nice recently published article https://css-tricks.com/comparing-the-new-generation-of-build-tools/.