You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

331 lines
9.0 KiB

.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
.TH "NPM\-FAQ" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-faq\fR \-\- Frequently Asked Questions
.
.SH "Where can I find these docs in HTML?"
\fIhttp://npmjs\.org/doc/\fR, or run:
.
.IP "" 4
.
.nf
npm config set viewer browser
.
.fi
.
.IP "" 0
.
.P
to open these documents in your default web browser rather than \fBman\fR\|\.
.
.SH "It didn\'t work\."
That\'s not really a question\.
.
.SH "Why didn\'t it work?"
I don\'t know yet\.
.
.P
Read the error output, and if you can\'t figure out what it means,
do what it says and post a bug with all the information it asks for\.
.
.SH "Where does npm put stuff?"
See \fBnpm help folders\fR
.
.P
tl;dr:
.
.IP "\(bu" 4
Use the \fBnpm root\fR command to see where modules go, and the \fBnpm bin\fR
command to see where executables go
.
.IP "\(bu" 4
Global installs are different from local installs\. If you install
something with the \fB\-g\fR flag, then its executables go in \fBnpm bin \-g\fR
and its modules go in \fBnpm root \-g\fR\|\.
.
.IP "" 0
.
.SH "How do I install something on my computer in a central location?"
Install it globally by tacking \fB\-g\fR or \fB\-\-global\fR to the command\. (This
is especially important for command line utilities that need to add
their bins to the global system \fBPATH\fR\|\.)
.
.SH "I installed something globally, but I can\'t `require()` it"
Install it locally\.
.
.P
The global install location is a place for command\-line utilities
to put their bins in the system \fBPATH\fR\|\. It\'s not for use with \fBrequire()\fR\|\.
.
.P
If you \fBrequire()\fR a module in your code, then that means it\'s a
dependency, and a part of your program\. You need to install it locally
in your program\.
.
.SH "Why can\'t npm just put everything in one place, like other package managers?"
Not every change is an improvement, but every improvement is a change\.
This would be like asking git to do network IO for every commit\. It\'s
not going to happen, because it\'s a terrible idea that causes more
problems than it solves\.
.
.P
It is much harder to avoid dependency conflicts without nesting
dependencies\. This is fundamental to the way that npm works, and has
proven to be an extremely successful approach\. See \fBnpm help folders\fR for
more details\.
.
.P
If you want a package to be installed in one place, and have all your
programs reference the same copy of it, then use the \fBnpm link\fR command\.
That\'s what it\'s for\. Install it globally, then link it into each
program that uses it\.
.
.SH "Whatever, I really want the old style \'everything global\' style\."
Write your own package manager, then\. It\'s not that hard\.
.
.P
npm will not help you do something that is known to be a bad idea\.
.
.SH "Should I check my `node_modules` folder into git?"
Mikeal Rogers answered this question very well:
.
.P
\fIhttp://www\.mikealrogers\.com/posts/nodemodules\-in\-git\.html\fR
.
.P
tl;dr
.
.IP "\(bu" 4
Check \fBnode_modules\fR into git for things you \fBdeploy\fR, such as
websites and apps\.
.
.IP "\(bu" 4
Do not check \fBnode_modules\fR into git for libraries and modules
intended to be reused\.
.
.IP "\(bu" 4
Use npm to manage dependencies in your dev environment, but not in
your deployment scripts\.
.
.IP "" 0
.
.SH "Is it \'npm\' or \'NPM\' or \'Npm\'?"
npm should never be capitalized unless it is being displayed in a
location that is customarily all\-caps (such as the title of man pages\.)
.
.SH "If \'npm\' is an acronym, why is it never capitalized?"
Contrary to the belief of many, "npm" is not in fact an abbreviation for
"Node Package Manager"\. It is a recursive bacronymic abbreviation for
"npm is not an acronym"\. (If it was "ninaa", then it would be an
acronym, and thus incorrectly named\.)
.
.P
"NPM", however, \fIis\fR an acronym (more precisely, a capitonym) for the
National Association of Pastoral Musicians\. You can learn more
about them at \fIhttp://npm\.org/\fR\|\.
.
.P
In software, "NPM" is a Non\-Parametric Mapping utility written by
Chris Rorden\. You can analyze pictures of brains with it\. Learn more
about the (capitalized) NPM program at \fIhttp://www\.cabiatl\.com/mricro/npm/\fR\|\.
.
.P
The first seed that eventually grew into this flower was a bash utility
named "pm", which was a shortened descendent of "pkgmakeinst", a
bash function that was used to install various different things on different
platforms, most often using Yahoo\'s \fByinst\fR\|\. If \fBnpm\fR was ever an
acronym for anything, it was \fBnode pm\fR or maybe \fBnew pm\fR\|\.
.
.P
So, in all seriousness, the "npm" project is named after its command\-line
utility, which was organically selected to be easily typed by a right\-handed
programmer using a US QWERTY keyboard layout, ending with the
right\-ring\-finger in a postition to type the \fB\-\fR key for flags and
other command\-line arguments\. That command\-line utility is always
lower\-case, though it starts most sentences it is a part of\.
.
.SH "How do I list installed packages?"
\fBnpm ls\fR
.
.SH "How do I search for packages?"
\fBnpm search\fR
.
.P
Arguments are greps\. \fBnpm search jsdom\fR shows jsdom packages\.
.
.SH "How do I update npm?"
.
.nf
npm update npm \-g
.
.fi
.
.P
You can also update all outdated local packages by doing \fBnpm update\fR without
any arguments, or global packages by doing \fBnpm update \-g\fR\|\.
.
.P
Occasionally, the version of npm will progress such that the current
version cannot be properly installed with the version that you have
installed already\. (Consider, if there is ever a bug in the \fBupdate\fR
command\.)
.
.P
In those cases, you can do this:
.
.IP "" 4
.
.nf
curl http://npmjs\.org/install\.sh | sh
.
.fi
.
.IP "" 0
.
.SH "What is a `package`?"
A package is:
.
.IP "\(bu" 4
a) a folder containing a program described by a package\.json file
.
.IP "\(bu" 4
b) a gzipped tarball containing (a)
.
.IP "\(bu" 4
c) a url that resolves to (b)
.
.IP "\(bu" 4
d) a \fB<name>@<version>\fR that is published on the registry with (c)
.
.IP "\(bu" 4
e) a \fB<name>@<tag>\fR that points to (d)
.
.IP "\(bu" 4
f) a \fB<name>\fR that has a "latest" tag satisfying (e)
.
.IP "\(bu" 4
g) a \fBgit\fR url that, when cloned, results in (a)\.
.
.IP "" 0
.
.P
Even if you never publish your package, you can still get a lot of
benefits of using npm if you just want to write a node program (a), and
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b)\.
.
.P
Git urls can be of the form:
.
.IP "" 4
.
.nf
git://github\.com/user/project\.git#commit\-ish
git+ssh://user@hostname:project\.git#commit\-ish
git+http://user@hostname/project/blah\.git#commit\-ish
git+https://user@hostname/project/blah\.git#commit\-ish
.
.fi
.
.IP "" 0
.
.P
The \fBcommit\-ish\fR can be any tag, sha, or branch which can be supplied as
an argument to \fBgit checkout\fR\|\. The default is \fBmaster\fR\|\.
.
.SH "How do I install node with npm?"
You don\'t\. Try one of these:
.
.IP "\(bu" 4
\fIhttp://github\.com/isaacs/nave\fR
.
.IP "\(bu" 4
\fIhttp://github\.com/visionmedia/n\fR
.
.IP "\(bu" 4
\fIhttp://github\.com/creationix/nvm\fR
.
.IP "" 0
.
.SH "How can I use npm for development?"
See \fBnpm help developers\fR and \fBnpm help json\fR\|\.
.
.P
You\'ll most likely want to \fBnpm link\fR your development folder\. That\'s
awesomely handy\.
.
.P
To set up your own private registry, check out \fBnpm help registry\fR\|\.
.
.SH "Can I list a url as a dependency?"
Yes\. It should be a url to a gzipped tarball containing a single folder
that has a package\.json in its root, or a git url\.
(See "what is a package?" above\.)
.
.SH "How do I symlink to a dev folder so I don\'t have to keep re\-installing?"
See \fBnpm help link\fR
.
.SH "The package registry website\. What is that exactly?"
See \fBnpm help registry\fR\|\.
.
.SH "What\'s up with the insecure channel warnings?"
Until node 0\.4\.10, there were problems sending big files over HTTPS\. That
means that publishes go over HTTP by default in those versions of node\.
.
.SH "I forgot my password, and can\'t publish\. How do I reset it?"
Go to \fIhttp://admin\.npmjs\.org/reset\fR\|\.
.
.SH "I get ECONNREFUSED a lot\. What\'s up?"
Either the registry is down, or node\'s DNS isn\'t able to reach out\.
.
.P
To check if the registry is down, open up \fIhttp://registry\.npmjs\.org/\fR
in a web browser\. This will also tell you if you are just unable to
access the internet for some reason\.
.
.P
If the registry IS down, let me know by emailing or posting an issue\.
We\'ll have someone kick it or something\.
.
.SH "Who does npm?"
\fBnpm view npm author\fR
.
.P
\fBnpm view npm contributors\fR
.
.SH "I have a question or request not addressed here\. Where should I put it?"
Discuss it on the mailing list, or post an issue\.
.
.IP "\(bu" 4
\fInpm\-@googlegroups\.com\fR
.
.IP "\(bu" 4
\fIhttp://github\.com/isaacs/npm/issues\fR
.
.IP "" 0
.
.SH "Why does npm hate me?"
npm is not capable of hatred\. It loves everyone, especially you\.
.
.SH "SEE ALSO"
.
.IP "\(bu" 4
npm help npm
.
.IP "\(bu" 4
npm help developers
.
.IP "\(bu" 4
npm help json
.
.IP "\(bu" 4
npm help config
.
.IP "\(bu" 4
npm help folders
.
.IP "" 0