npm Blog (Archive)

The npm blog has been discontinued.

Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog.

I Am The Very Model Of A Modern Package Manager

One of the most amazing parts of working at npm is the passion of our userbase. People make fan art. A fan invented our mascot. This stuff just happens.

Yesterday at lunch, we got into a run of punny song titles based on musicals, leading to a series of tweets about npm the musical. By late that evening, what landed in our inbox? Full lyrics to one of the songs, courtesy of the astonishingly creative Revin Guillen. Not only is it a catchy song, it’s a surprisingly thorough overview of npm’s features and functionality. We are blown away.

I Am The Very Model Of A Modern Package Manager

(To the tune of I Am The Very Model Of A Modern Major General.)

I am the very model of a modern package manager
I’ve information current, deprecated in my cache-ager
I know the code you write has other modules (“mod-you-uhls”) it depends on
And I collect it all for you from first the moment you log on

My registry with calculations teeming mathematical
Dependencies relationshipped by edges linked quite graph-ical
The versions, stars, and issues, bugs all published for the world to see
With many cheerful links to source control for the reposit'ry

With many cheerful links to source control for the reposit'ry
With many cheerful links to source control for the reposit'ry
With many cheerful links to source control for the reposiposit'ry

I’m very good at testing, tagging, publishing your libraries
I find the dupes and de- the dupes and you can rebuild all of these
In short, in matters JavaScript, dependency, and modular
I am the very model of a modern package manager

In short, in matters JavaScript, dependency, and modular
It is the very model of a modern package manager

I know your repo’s history, can shrinkwrap all the deps you need
I answer all the queries, many millions served today indeed
I quote the docs to you when asked, or open them in Chrome at least
I’m active all the time, in time zones all the way from west to east

I can uninstall, unlink, unpublish, unstar, or just un
I know your login name and I can whoami for everyone
My interface is quick and you can write instructions easily
Abbreviate commands so they’re as terse as ‘r’, ’s’, 'i’, and 'c’

Abbreviate commands so they’re as terse as 'r’, ’s’, 'i’, and 'c’
Abbreviate commands so they’re as terse as 'r’, ’s’, 'i’, and 'c’
Abbreviate commands so they’re as terse as 'r’, ’s’, 'i’, and 'i’ and 'c’

Then I can run-script all the things, lifecycle hooks I can perform
And tell you all about a package: view 'f you want me to inform
In short, in matters JavaScript, dependency, and modular
I am the very model of a modern package manager

In short, in matters JavaScript, dependency, and modular
It is the very model of a modern package manager

In fact when I know what is meant by “version” or (heh) “verison”
When I can give you scripts to help your shell do tab comp-uh-letion
When certain variables are all there in the environment
I enter “plumbing mode”; my output’s based upon the arguments

When I have learnt what progress has been made by npm upgrade
Or npm update, when identical operations made
In short, when registry’s upgraded underneath transparentlyj
You’ll say a better package manager had never ran à ceej

You’ll say a better package manager had never ran à ceej
You’ll say a better package manager had never ran à ceej
You’ll say a better package manager had never ran à ran â ceej

For my packager'il knowledge, though I’m plucky and adventury
Has really really taken off since funding came in ventury
But still in matters JavaScript, dependency, and modular
I am the very model of a modern package manager

But still in matters JavaScript, dependency, and modular
It is the very model of a modern package manager