Number of ES modules on npm:
Share of all npm package exporting an ES module:
First “module” package published (accidentally):
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
First “module” package published:
.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:
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+
By the end of August, over 100 early-adopting packages & tools had followed suit.
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.