Not all npm modules reference Node libraries, and most that do use them for features that are unavailable otherwise (file reading, http connections, etc...). But other than self imposed module requirements, I don't think npm actually has anything intrinsically tying it to node. You can run npm without node, and if the library functions were emulated in a different engine, I think it would work mostly without a hitch. It's just that nobody has done that yet.