6 ms·
Wouldn't it be better to make NPM more distributed so that anyone could set up a mirror and help out? EDIT: Not saying it would be easy; I'm just wondering if
by judofyr 13y ago
Wouldn't it be better to make NPM more distributed so that anyone could set up a mirror and help out?
EDIT: Not saying it would be easy; I'm just wondering if you've considered this direction.
- indexzero 13y agoAnyone can make a mirror. That's the glory of CouchDB. Just kick off replication and BOOM you've got the npm registry. There are community mirrors in Europe (http://npmjs.eu http://npmjs.eu) and Australia. If you want to run or use a community mirror that's totally great! npm config set registry http://my.awesome.community.mirror http://my.awesome.community.mirror
- applecore 13y agoI'm surprised they're using CouchDB and not MongoDB.
- twerquie 13y agoWhy?
- cleverjake 13y agoa lot of the central node community started on couch
- nawitus 13y agoCouchDB has better replication support (e.g. multi-master, MVCC).
- nathan7 13y agonpm is pretty much the prime use-case for CouchDB. REST API out of the box, replication is a core feature and not just a scaling feature (multi-master, MVCC) and the validation/access control is pretty much made for it. The npm registry is implemented as a CouchApp for a reason.
- remon 13y agoI agree that from a functionality perspective this is largely true, at least on paper. That said, if running costs become a significant bottleneck CouchDB becomes a less obvious choice. Sometimes there's a reluctance to migrate from one technology to another as requirements change over time but this seems one of those occasions where exactly that step is required. Sometimes it's good to take a step back, look at your current requirements in terms of cost and performance and determine what technology best suits your needs. I would question the know-how and objectivity of anyone that would land on CouchDB/node.js in this instance.
- nathan7 13y agoThere's no node involved in the registry itself. This is purely CouchDB.
- addandsubtract 13y agoThis is great and all, but when Heroku relies on the main npm registry to be up (when it's not) you're screwed.
- twalling 13y agoHeroku customers can always clone the nodejs buildpack and simply point the npm registry at another mirror.
- nfriedly 13y agoI've started to always check in my node_modules directory. Heroku automatically runs `npm rebuild` in that case, so native modules always work. I've found it to be both faster and more reliable.
- agentultra 13y agoIt's hard but the payoff is worth it. Just look at CPAN or any linux pacakge distribution system. The package hosting is all mirrored.
- jenius 13y agoWould also be interested to hear someone from nodejitsu's response to this.
- quarterto 13y agohttps://github.com/dominictarr/npmd https://github.com/dominictarr/npmd
- dmourati 13y agoThis was what I said when the repository went down for over eight hours a few weeks back. Part one is scaling the server, part two is making the client aware of the mirrors and gracefully handling temporary unavailability. From the looks of it, this all seems above the heads of node's current leadership which frankly sours me on relying on node at all.
- malandrew 13y agoMake it into a docker app please. I would love to be able to set up a bunch of these commonly used registries as a distributed app I can run on my machine with very little overhead. Have it set up to pull in bulk changes as a cron job or via torrents maybe? Having my own personal NPM and own personal RubyGems would be awesome.
- regularfry 13y agoYour own personal rubygems is downright trivial, given a constrained set of gems. Upload .gems to a directory, build an index, serve static files. I'm guessing there's something about npm packages which makes that impossible.
- iloveponies 13y agoYes, npm itself is the only reason why.
- candyluver13 13y agohttps://github.com/jmgunn87/mynpm https://github.com/jmgunn87/mynpm <- docker app is jmgunn87/mynpm