.\" generated with Ronn/v0.4.1 .\" http://github.com/rtomayko/ronn/ . .TH "NPM" "1" "May 2010" "" "" . .SH "NAME" \fBnpm\fR \-\- node package manager . .SH "SYNOPSIS" . .nf npm [args] . .fi . .SH "DESCRIPTION" npm is a little package manager for the Node javascript library. . .P See npm\-help(1) for more details about specific commands. . .P If you are a package maintainer, please investigate the documentation at npm\-json(1), npm\-publish(1), and npm\-tag(1) sections first. See npm\-folders(1) section to see how you can leverage npm's functionality for your own purposes. . .SH "STATUS: beta" The core functionality is there. You can publish, tag, and install. It handles dependencies relatively smartly. . .P Please use this software. It will cut you occasionally. Let me know when you find a rough edge, and I'll sand it down for you. . .P I appreciate your sense of adventure. . .SH "Principles" Put the files where they need to be so that node can find them using the methods it already uses. . .P Be lazy, not clever. . .P The file system is the database. . .P Sync with habits that are already in use. . .P Packages should be maintained by their authors, not by the package manager author. . .P Run it on node. Cuz a node package manager should be written in evented javascript. . .SH "Contributing" If you're interested in helping, that's awesome! Please fork this project, implement some of the things on the todo list, or fix an issue, or even just write or edit some documentation. You have no idea just how thankful I'll be. . .P If you don't want to contribute patches, that's also cool. It's very helpful to have people play with npm and send issues or complaints. It's stable in what it does, so you may find it useful even if you just link in your stuff by doing \fBnpm link .\fR to put it in the \fBNODE_PATH\fR so you can pull it in more easily. . .P If you have strong feelings about package managers, I'd love to hear your opinions. . .P You can usually find me in #node.js on freenode.net, or you can reach me via i@izs.me. . .SH "Todo" . .IP "\(bu" 4 Update dependencies when a new satisfying version is installed. . .IP "\(bu" 4 Clean up after botched builds. Rather than removing stuff, move it aside, and only remove it when the process succeeds. If it fails, then roll it all back to the way it was beforehand. . .IP "\(bu" 4 Some sugar to make it simpler to tie a git repo to a published package, and then automatically update the registry whenever a specific branch (or semver\-looking tag) is pushed. . .IP "\(bu" 4 Show what can be installed by looking at the registry. . .IP "\(bu" 4 Use path.relative so that the whole root can be picked up and moved easily. . .IP "\(bu" 4 Change the registry so that it keeps the tarball as a couchdb attachment. (That's more a change to js\-registry, not to npm, but they are related.) . .IP "\(bu" 4 Ability to talk to more than one registry at a time. . .IP "\(bu" 4 Abbrev support on the CLI commands . .IP "\(bu" 4 A bash\-completion script . .IP "\(bu" 4 chmod 0755 the bins automatically . .IP "\(bu" 4 Use buffers to download tarballs, instead of the "binary" encoding. . .IP "\(bu" 4 When the tarball is downloaded, save it to .tmp/name/ver/package.tgz, instead of some random garbage filename. . .IP "\(bu" 4 Cache JSON files locally to .tmp/name/ver/package.json, even if the package isn't installed. This would cut down on calls to the registry. . .IP "" 0 . .SH "Version History" . .TP 0.0.1 Lots of sketches and false starts. Abandoned a few times. . .TP 0.0.2 Install worked mostly. Still promise\-based. . .TP 0.0.3 Converted to callbacks. . .br Mikeal Rogers wrote a registry for it. . .TP 0.0.4 version dependencies . .br link packages . .br activation . .br lifecycle scripts . .br bin linking . .br uninstallation . .TP 0.0.5 fix a few bugs in uninstall wrt dependent packages . .br fix relative require()for nodejs modules installed with the "bin" field. . .br (issue #2) . .br update to work with node 0.1.33 (aka net2) . .br added publish and tag commands . .TP 0.0.6 set up a public registry . .br send content\-length with registry PUTs . .br adduser command (Mikeal Rogers) . .br ini file stuff (Mikeal Rogers) . .br env\-specific package.json . .br added more info to npm's the package.json (bugs, contributors, etc.) . .TP 0.0.7 fixed a few bugs in semver . .br refactor documentation . .br add "help" command . .br add install from registry . .br everything else core . .br push to beta . .TP 0.1.0 \- 0.1.2 push to beta, and announce . .br clean up some bugs around lifecycle scripts . .br reduce reliance on makefile . .br documentation updates . .br Fixed DOA bugs . .br Removed dependence on ronn . .TP 0.1.3 Changed a few details with configs (fix #5) . .br Update adduser and publish to put author info in the data . .br Use buffer api for file writes, hopefully fix #4 . .SH "SEE ALSO" npm\-help(1) . .br