NPM Stats

Updated daily.

Number of ES modules on npm:

52,331 as of April 14, 2019

Number of ES modules as a percentage of npm:

6.29% as of March 31, 2019

First “module” package published (accidentally):

please-wait@0.0.3 → May 24, 2015

Although “please-wait” earned the distinction of being the first published package to ever use the “module” property, it seems to have happened accidentally. The property described the title of the package ("module": "pleaseWait") and not an ES module entry point. This would probably break most bundlers today.

It would be another year before anyone else would use this package.json property.

First “module” package published:

hyperform@0.2.2 → May 04, 2016

On April 27, 2016 a group of JavaScript enthusiasts published a proposal called “In Defense of .js”. It was written in response to Node’s attempt to introduce a new .mjs file extension into the community, citing limitations in Node that required a new extension.

“hyperform” appears to be the first package to truly, intentionally use the “module” entry point for this purpose. Published on May 4, 2016, this package was also ahead of it’s time: it would still be another three months before any tooling actually supported this new entry point.

First major library to adopt the “module” entry point:

d3@4.2.1 → + rollup →

Rollup published support for the “module” entry point in their bundler on August 1, 2016, kick-starting the surge in adoption that you see in the graph above. By the next day, d3 became one of the first libraries to adopt the pattern in all 30+ d3-* packages.

By the end of August, over 100 early-adopting packages & tools had followed suit.

More stats?

Ask any data questions you have in our @pikapkg/analyze-npm repo. We’ll try to find out the answer, and if it’s a good one we’ll feature it on this page.