.gitignore
release/
+# don't need these in the npm package.
+html/*.png
+
# don't ignore .npmignore files
# these are used in some tests.
!.npmignore
Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
Dalmais Maxence <github@maxired.fr>
Marcus Ekwall <marcus.ekwall@gmail.com>
+Aaron Stacy <aaron.r.stacy@gmail.com>
doc-publish: doc
rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
+ rsync -vazu --stats --no-implied-dirs --delete html/webfonts/ npmjs.org:/var/www/npmjs.org/public/webfonts
+ scp html/style.css npmjs.org:/var/www/npmjs.org/public/
zip-publish: release
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname: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
If this is spelled `"bundleDependencies"`, then that is also honorable.
+## optionalDependencies
+
+If a dependency can be used, but you would like npm to proceed if it
+cannot be found or fails to install, then you may put it in the
+`optionalDependencies` hash. This is a map of package name to version
+or url, just like the `dependencies` hash. The difference is that
+failure is tolerated.
+
+It is still your program's responsibility to handle the lack of the
+dependency. For example, something like this:
+
+ try {
+ var foo = require('foo')
+ var fooVersion = require('foo/package.json').version
+ } catch (er) {
+ foo = null
+ }
+ if ( notGoodFooVersion(fooVersion) ) {
+ foo = null
+ }
+
+ // .. then later in your program ..
+
+ if (foo) {
+ foo.doFooThings()
+ }
+
+Entries in `optionalDependencies` will override entries of the same name in
+`dependencies`, so it's usually best to only put in one place.
+
## engines
You can specify the version of
+++ /dev/null
-<!doctype html>
-<html>
- <title>author</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/owner.html">owner</a></h1> <p>Manage package owners</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.owner(args, callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>The first element of the 'args' parameter defines what to do, and the subsequent
-elements depend on the action. Possible values for the action are (order of
-parameters are given in parenthesis):</p>
-
-<ul><li>ls (package):
-List all the users who have access to modify a package and push new versions.
-Handy when you need to know who to bug for help.</li><li>add (user, package):
-Add a new user as a maintainer of a package. This user is enabled to modify
-metadata, publish new versions, and add other owners.</li><li>rm (user, package):
-Remove a user from the package owner list. This immediately revokes their
-privileges.</li></ul>
-
-<p>Note that there is only one level of access. Either you can modify a package,
-or you can't. Future versions may contain more fine-grained access levels, but
-that is not implemented at this time.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
-</div>
-<p id="footer">author — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>bin</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This function should not be used programmatically. Instead, just refer
to the <code>npm.bin</code> member.</p>
</div>
-<p id="footer">bin — npm@1.1.21</p>
+<p id="footer">bin — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>bugs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">bugs — npm@1.1.21</p>
+<p id="footer">bugs — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>commands</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">commands — npm@1.1.21</p>
+<p id="footer">commands — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>config</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">config — npm@1.1.21</p>
+<p id="footer">config — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>deprecate</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../api/unpublish.html">unpublish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate — npm@1.1.21</p>
+<p id="footer">deprecate — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>docs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This command will launch a browser, so this command may not be the most
friendly for programmatic use.</p>
</div>
-<p id="footer">docs — npm@1.1.21</p>
+<p id="footer">docs — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>edit</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Since this command opens an editor in a new process, be careful about where
and how this is used.</p>
</div>
-<p id="footer">edit — npm@1.1.21</p>
+<p id="footer">edit — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>explore</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.</p>
</div>
-<p id="footer">explore — npm@1.1.21</p>
+<p id="footer">explore — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>find</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/ls.html">ls</a></h1> <p>List installed packages</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.ls(args, [silent,] callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This command will print to stdout all the versions of packages that are
-installed, as well as their dependencies, in a tree-structure. It will also
-return that data using the callback.</p>
-
-<p>This command does not take any arguments, but args must be defined.
-Beyond that, if any arguments are passed in, npm will politely warn that it
-does not take positional arguments, though you may set config flags
-like with any other command, such as <code>global</code> to list global packages.</p>
-
-<p>It will print out extraneous, missing, and invalid packages.</p>
-
-<p>If the silent parameter is set to true, nothing will be output to the screen,
-but the data will still be returned.</p>
-
-<h2 id="CONFIGURATION">CONFIGURATION</h2>
-
-<h3 id="long">long</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show extended information.</p>
-
-<h3 id="parseable">parseable</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show parseable output instead of tree view.</p>
-
-<h3 id="global">global</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>List packages in the global install prefix instead of in the current
-project.</p>
-
-<p>Note, if parseable is set or long isn't set, then duplicates will be trimmed.
-This means that if a submodule a same dependency as a parent module, then the
-dependency will only be output once.</p>
-</div>
-<p id="footer">find — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
+++ /dev/null
-<!doctype html>
-<html>
- <title>get</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/config.html">config</a></h1> <p>Manage the npm configuration files</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.config(args, callback)
-var val = npm.config.get(key)
-npm.config.set(key, val)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This function acts much the same way as the command-line version. The first
-element in the array tells config what to do. Possible values are:</p>
-
-<ul><li><p><code>set</code></p><p>Sets a config parameter. The second element in <code>args</code> is interpreted as the
-key, and the third element is interpreted as the value.</p></li><li><p><code>get</code></p><p>Gets the value of a config parameter. The second element in <code>args</code> is the
-key to get the value of.</p></li><li><p><code>delete</code> (<code>rm</code> or <code>del</code>)</p><p>Deletes a parameter from the config. The second element in <code>args</code> is the
-key to delete.</p></li><li><p><code>list</code> (<code>ls</code>)</p><p>Show all configs that aren't secret. No parameters necessary.</p></li><li><p><code>edit</code>:</p><p>Opens the config file in the default editor. This command isn't very useful
-programmatically, but it is made available.</p></li></ul>
-
-<p>To programmatically access npm configuration settings, or set them for
-the duration of a program, use the <code>npm.config.set</code> and <code>npm.config.get</code>
-functions instead.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
-</div>
-<p id="footer">get — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>help-search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>The silent parameter is not neccessary not used, but it may in the future.</p>
</div>
-<p id="footer">help-search — npm@1.1.21</p>
+<p id="footer">help-search — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>home</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.docs(package, callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This command tries to guess at the likely location of a package's
-documentation URL, and then tries to open it using the <code>--browser</code>
-config param.</p>
-
-<p>Like other commands, the first parameter is an array. This command only
-uses the first element, which is expected to be a package name with an
-optional version number.</p>
-
-<p>This command will launch a browser, so this command may not be the most
-friendly for programmatic use.</p>
-</div>
-<p id="footer">home — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>init</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p><a href="../doc/json.html">json(1)</a></p>
</div>
-<p id="footer">init — npm@1.1.21</p>
+<p id="footer">init — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>install</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Finally, 'callback' is a function that will be called when all packages have been
installed or when an error has been encountered.</p>
</div>
-<p id="footer">install — npm@1.1.21</p>
+<p id="footer">install — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>link</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Now, any changes to the redis package will be reflected in
the package in the current working directory</p>
</div>
-<p id="footer">link — npm@1.1.21</p>
+<p id="footer">link — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>list</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/ls.html">ls</a></h1> <p>List installed packages</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.ls(args, [silent,] callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This command will print to stdout all the versions of packages that are
-installed, as well as their dependencies, in a tree-structure. It will also
-return that data using the callback.</p>
-
-<p>This command does not take any arguments, but args must be defined.
-Beyond that, if any arguments are passed in, npm will politely warn that it
-does not take positional arguments, though you may set config flags
-like with any other command, such as <code>global</code> to list global packages.</p>
-
-<p>It will print out extraneous, missing, and invalid packages.</p>
-
-<p>If the silent parameter is set to true, nothing will be output to the screen,
-but the data will still be returned.</p>
-
-<h2 id="CONFIGURATION">CONFIGURATION</h2>
-
-<h3 id="long">long</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show extended information.</p>
-
-<h3 id="parseable">parseable</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show parseable output instead of tree view.</p>
-
-<h3 id="global">global</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>List packages in the global install prefix instead of in the current
-project.</p>
-
-<p>Note, if parseable is set or long isn't set, then duplicates will be trimmed.
-This means that if a submodule a same dependency as a parent module, then the
-dependency will only be output once.</p>
-</div>
-<p id="footer">list — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
+++ /dev/null
-<!doctype html>
-<html>
- <title>ln</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/link.html">link</a></h1> <p>Symlink a package folder</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.command.link(callback)
-npm.command.link(packages, callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>Package linking is a two-step process.</p>
-
-<p>Without parameters, link will create a globally-installed
-symbolic link from <code>prefix/package-name</code> to the current folder.</p>
-
-<p>With a parameters, link will create a symlink from the local <code>node_modules</code>
-folder to the global symlink.</p>
-
-<p>When creating tarballs for <code>npm publish</code>, the linked packages are
-"snapshotted" to their current state by resolving the symbolic links.</p>
-
-<p>This is
-handy for installing your own stuff, so that you can work on it and test it
-iteratively without having to continually rebuild.</p>
-
-<p>For example:</p>
-
-<pre><code>npm.commands.link(cb) # creates global link from the cwd
- # (say redis package)
-npm.commands.link('redis', cb) # link-install the package</code></pre>
-
-<p>Now, any changes to the redis package will be reflected in
-the package in the current working directory</p>
-</div>
-<p id="footer">ln — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>load</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>For a list of all the available command-line configs, see <code>npm help config</code></p>
</div>
-<p id="footer">load — npm@1.1.21</p>
+<p id="footer">load — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>ls</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
This means that if a submodule a same dependency as a parent module, then the
dependency will only be output once.</p>
</div>
-<p id="footer">ls — npm@1.1.21</p>
+<p id="footer">ls — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<h2 id="VERSION">VERSION</h2>
-<p>1.1.21</p>
+<p>1.1.24</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre>
</div>
-<p id="footer">npm — npm@1.1.21</p>
+<p id="footer">npm — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>outdated</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>If the 'packages' parameter is left out, npm will check all packages.</p>
</div>
-<p id="footer">outdated — npm@1.1.21</p>
+<p id="footer">outdated — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>owner</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../api/publish.html">publish(3)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">owner — npm@1.1.21</p>
+<p id="footer">owner — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>pack</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>If no arguments are supplied, then npm packs the current package folder.</p>
</div>
-<p id="footer">pack — npm@1.1.21</p>
+<p id="footer">pack — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>prefix</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">prefix — npm@1.1.21</p>
+<p id="footer">prefix — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>prune</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
-<p id="footer">prune — npm@1.1.21</p>
+<p id="footer">prune — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>publish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../api/owner.html">owner(3)</a></li></ul>
</div>
-<p id="footer">publish — npm@1.1.21</p>
+<p id="footer">publish — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>rebuild</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>See <code>npm help build</code></p>
</div>
-<p id="footer">rebuild — npm@1.1.21</p>
+<p id="footer">rebuild — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>restart</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">restart — npm@1.1.21</p>
+<p id="footer">restart — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>rm</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/uninstall.html">uninstall</a></h1> <p>uninstall a package programmatically</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.uninstall(packages, callback)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This acts much the same ways as uninstalling on the command-line.</p>
-
-<p>The 'packages' parameter is an array of strings. Each element in the array is
-the name of a package to be uninstalled.</p>
-
-<p>Finally, 'callback' is a function that will be called when all packages have been
-uninstalled or when an error has been encountered.</p>
-</div>
-<p id="footer">rm — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>root</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This function is not useful programmatically.</p>
</div>
-<p id="footer">root — npm@1.1.21</p>
+<p id="footer">root — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>run-script</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../api/test.html">test(3)</a></li><li><a href="../api/start.html">start(3)</a></li><li><a href="../api/restart.html">restart(3)</a></li><li><a href="../api/stop.html">stop(3)</a></li></ul>
</div>
-<p id="footer">run-script — npm@1.1.21</p>
+<p id="footer">run-script — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
and doesn't try to read your mind (it doesn't do any verb tense matching or the
like).</p>
</div>
-<p id="footer">search — npm@1.1.21</p>
+<p id="footer">search — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>set</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../api/config.html">config</a></h1> <p>Manage the npm configuration files</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm.commands.config(args, callback)
-var val = npm.config.get(key)
-npm.config.set(key, val)</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This function acts much the same way as the command-line version. The first
-element in the array tells config what to do. Possible values are:</p>
-
-<ul><li><p><code>set</code></p><p>Sets a config parameter. The second element in <code>args</code> is interpreted as the
-key, and the third element is interpreted as the value.</p></li><li><p><code>get</code></p><p>Gets the value of a config parameter. The second element in <code>args</code> is the
-key to get the value of.</p></li><li><p><code>delete</code> (<code>rm</code> or <code>del</code>)</p><p>Deletes a parameter from the config. The second element in <code>args</code> is the
-key to delete.</p></li><li><p><code>list</code> (<code>ls</code>)</p><p>Show all configs that aren't secret. No parameters necessary.</p></li><li><p><code>edit</code>:</p><p>Opens the config file in the default editor. This command isn't very useful
-programmatically, but it is made available.</p></li></ul>
-
-<p>To programmatically access npm configuration settings, or set them for
-the duration of a program, use the <code>npm.config.set</code> and <code>npm.config.get</code>
-functions instead.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../api/npm.html">npm(3)</a></li></ul>
-</div>
-<p id="footer">set — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>shrinkwrap</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
-<p id="footer">shrinkwrap — npm@1.1.21</p>
+<p id="footer">shrinkwrap — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>start</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">start — npm@1.1.21</p>
+<p id="footer">start — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>stop</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">stop — npm@1.1.21</p>
+<p id="footer">stop — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-
-/* reset */
-* {
- margin:0;
- padding:0;
- border:none;
- font-family:inherit;
- font-size:inherit;
- font-weight:inherit;
-}
-:target::before {
- content:" >>> ";
- position:absolute;
- display:block;
- opacity:0.5;
- color:#f00;
- margin:0 0 0 -2em;
-}
-abbr, acronym {
- border-bottom:1px dotted #aaa;
-}
-kbd, code, pre {
- font-family:monospace;
- margin:0;
- font-size:18px;
- line-height:24px;
- background:#eee;
- outline:1px solid #ccc;
-}
-kbd code, kbd pre, kbd kbd,
-pre code, pre pre, pre kbd,
-code code, code pre, code kbd { outline: none }
-.dollar::before {
- content:"$ ";
- display:inline;
-}
-p, ul, ol, dl, pre {
- margin:30px 0;
- line-height:30px;
-}
-hr {
- margin:30px auto 29px;
- width:66%;
- height:1px;
- background:#aaa;
-}
-pre {
- display:block;
-}
-dd :first-child {
- margin-top:0;
-}
-
-body {
- quotes:"“" "”" "‘" "’";
- width:666px;
- margin:30px auto 120px;
- font-family:Times New Roman, serif;
- font-size:20px;
- background:#fff;
- line-height:30px;
- color:#111;
-}
-
-blockquote {
- position:relative;
- font-size:16px;
- line-height:30px;
- font-weight:bold;
- width:85%;
- margin:0 auto;
-}
-blockquote::before {
- font-size:90px;
- display:block;
- position:absolute;
- top:20px;
- right:100%;
- content:"“";
- padding-right:10px;
- color:#ccc;
-}
-.source cite::before {
- content:"— ";
-}
-.source {
- padding-left:20%;
- margin-top:30px;
-}
-.source cite span {
- font-style:normal;
-}
-blockquote p {
- margin-bottom:0;
-}
-.quote blockquote {
- font-weight:normal;
-}
-
-h1, h2, h3, h4, h5, h6, dt, #header {
- font-family:serif;
- font-size:20px;
- font-weight:bold;
-}
-h2 {
- background:#eee;
-}
-h1, h2 {
- line-height:40px;
-}
-
-i, em, cite {
- font-style:italic;
-}
-b, strong {
- font-weight:bold;
-}
-i, em, cite, b, strong, small {
- line-height:28px;
-}
-small, .small, .small *, aside {
- font-style:italic;
- color:#669;
- font-size:18px;
-}
-spall a, .small a {
- text-decoration:underline;
-}
-del {
- text-decoration:line-through;
-}
-ins {
- text-decoration:underline;
-}
-.alignright { display:block; float:right; margin-left:1em; }
-.alignleft { display:block; float:left; margin-right:1em; }
-
-q:before, q q q:before, q q q q q:before, q q q q q q q:before { content:"“"; }
-q q:before, q q q q:before, q q q q q q:before, q q q q q q q q:before { content:"‘"; }
-q:after, q q q:after, q q q q q:after, q q q q q q q:after { content:"”"; }
-q q:after, q q q q:after, q q q q q q:after, q q q q q q q q:after { content:"’"; }
-
-a { color:#00f; text-decoration:none; }
-a:visited { color:#636; }
-a:hover, a:active { color:#900!important; text-decoration:underline; }
-
-h1 {
- font-weight:bold;
- background:#fff;
-}
-h1 a, h1 a:visited {
- font-family:gubblefont, GubbleBum Blocky, GubbleBum, monospace;
- font-size:60px;
- color:#900;
- display:block;
-}
-h1 a:focus, h1 a:hover, h1 a:active {
- color:#f00!important;
- text-decoration:none;
-}
-
-.navigation {
- display:table;
- width:100%;
- margin:0 0 30px 0;
- position:relative;
-}
-#nav-above {
- margin-bottom:0;
-}
-.navigation .nav-previous {
- display:table-cell;
- text-align:left;
- width:50%;
-}
-/* hang the » and « off into the margins */
-.navigation .nav-previous a:before, .navigation .nav-next a:after {
- content: "«";
- display:block;
- height:30px;
- margin-bottom:-30px;
- text-decoration:none;
- margin-left:-15px;
-}
-.navigation .nav-next a:after {
- content: "»";
- text-align:right;
- margin-left:0;
- margin-top:-30px;
- margin-right:-15px;
-}
-
-
-.navigation .nav-next {
- display:table-cell;
- text-align:right;
- width:50%;
-}
-.navigation a {
- display:block;
- width:100%;
- height:100%;
-}
-
-input, button, textarea {
- border:0;
- line-height:30px;
-}
-textarea {
- height:300px;
-}
-input {
- height:30px;
- line-height:30px;
-}
-input.submit, input#submit, input.button, button, input[type=submit] {
- cursor:hand; cursor:pointer;
- outline:1px solid #ccc;
-}
-
-#wrapper {
- margin-bottom:90px;
- position:relative;
- z-index:1;
- *zoom:1;
- background:#fff;
-}
-#wrapper:after {
- display:block;
- content:".";
- visibility:hidden;
- width:0;
- height:0;
- clear:both;
-}
-
-.sidebar .xoxo > li {
- float:left;
- width:50%;
-}
-.sidebar li {
- list-style:none;
-}
-.sidebar #elsewhere {
- margin-left:-10%;
- margin-right:-10%;
-}
-.sidebar #rss-links, .sidebar #twitter-feeds {
- float:right;
- clear:right;
- width:20%;
-}
-.sidebar #comment {
- clear:both;
- float:none;
- width:100%;
-}
-.sidebar #search {
- clear:both;
- float:none;
- width:100%;
-}
-.sidebar #search h2 {
- margin-left:40%;
-}
-.sidebar #search #s {
- width:90%;
- float:left;
-}
-.sidebar #search #searchsubmit {
- width:10%;
- float:right;
-}
-.sidebar * {
- font-size:15px;
- line-height:30px;
-}
-
-#footer, #footer * {
- text-align:right;
- font-size:16px;
- color:#ccc;
- font-style:italic;
- word-spacing:1em;
-}
-
-#toc {
- position:absolute;
- top:0;
- right:0;
- padding:40px 0 40px 20px;
- margin:0;
- width:200px;
- opacity:0.2;
- z-index:-1;
-}
-#toc:hover {
- opacity:1;
- background:#fff;
- z-index:999;
-}
-#toc ul {
- padding:0;
- margin:0;
-}
-#toc, #toc li {
- list-style-type:none;
- font-size:15px;
- line-height:15px;
-}
-#toc li {
- padding:0 0 0 10px;
-}
-#toc li a {
- position:relative;
- display:block;
-}
-
-@font-face {
- font-family:gubblefont;
- src: url(./GubbleBum-Blocky.ttf) format("truetype");
-}
-
-@media print {
- a[href] {
- color:inherit;
- }
- a[href]:after {
- white-space:nowrap;
- content:" " attr(href);
- }
- a[href^=\#], .navigation {
- display:none;
- }
-}
-
<html>
<title>submodule</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule — npm@1.1.21</p>
+<p id="footer">submodule — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>tag</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
used. For more information about how to set this config, check
<code>man 3 npm-config</code> for programmatic usage or <code>man npm-config</code> for cli usage.</p>
</div>
-<p id="footer">tag — npm@1.1.21</p>
+<p id="footer">tag — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>test</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
-<p id="footer">test — npm@1.1.21</p>
+<p id="footer">test — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>uninstall</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>Finally, 'callback' is a function that will be called when all packages have been
uninstalled or when an error has been encountered.</p>
</div>
-<p id="footer">uninstall — npm@1.1.21</p>
+<p id="footer">uninstall — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>unpublish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>If no version is specified, or if all versions are removed then
the root package entry is removed from the registry entirely.</p>
</div>
-<p id="footer">unpublish — npm@1.1.21</p>
+<p id="footer">unpublish — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>update</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.</p>
</div>
-<p id="footer">update — npm@1.1.21</p>
+<p id="footer">update — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>version</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
parameter. The difference, however, is this function will fail if it does
not have exactly one element. The only element should be a version number.</p>
</div>
-<p id="footer">version — npm@1.1.21</p>
+<p id="footer">version — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>view</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>corresponding to the list of fields selected.</p>
</div>
-<p id="footer">view — npm@1.1.21</p>
+<p id="footer">view — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>whoami</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p>This function is not useful programmatically</p>
</div>
-<p id="footer">whoami — npm@1.1.21</p>
+<p id="footer">whoami — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>README</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer"><a href="../doc/README.html">README</a> — npm@1.1.21</p>
+<p id="footer"><a href="../doc/README.html">README</a> — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>adduser</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
-<p id="footer">adduser — npm@1.1.21</p>
+<p id="footer">adduser — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>author</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/owner.html">owner</a></h1> <p>Manage package owners</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm owner ls <package name>
-npm owner add <user> <package name>
-npm owner rm <user> <package name></code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>Manage ownership of published packages.</p>
-
-<ul><li>ls:
-List all the users who have access to modify a package and push new versions.
-Handy when you need to know who to bug for help.</li><li>add:
-Add a new user as a maintainer of a package. This user is enabled to modify
-metadata, publish new versions, and add other owners.</li><li>rm:
-Remove a user from the package owner list. This immediately revokes their
-privileges.</li></ul>
-
-<p>Note that there is only one level of access. Either you can modify a package,
-or you can't. Future versions may contain more fine-grained access levels, but
-that is not implemented at this time.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
-</div>
-<p id="footer">author — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>bin</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">bin — npm@1.1.21</p>
+<p id="footer">bin — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>bugs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/docs.html">docs(1)</a></li><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">bugs — npm@1.1.21</p>
+<p id="footer">bugs — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>build</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">build — npm@1.1.21</p>
+<p id="footer">build — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>bundle</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">bundle — npm@1.1.21</p>
+<p id="footer">bundle — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>cache</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li></ul>
</div>
-<p id="footer">cache — npm@1.1.21</p>
+<p id="footer">cache — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>changelog</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li></ul>
</div>
-<p id="footer">changelog — npm@1.1.21</p>
+<p id="footer">changelog — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>coding-style</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">coding-style — npm@1.1.21</p>
+<p id="footer">coding-style — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>completion</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">completion — npm@1.1.21</p>
+<p id="footer">completion — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>config</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
</div>
-<p id="footer">config — npm@1.1.21</p>
+<p id="footer">config — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>deprecate</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">deprecate — npm@1.1.21</p>
+<p id="footer">deprecate — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>developers</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li></ul>
</div>
-<p id="footer">developers — npm@1.1.21</p>
+<p id="footer">developers — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>disputes</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">disputes — npm@1.1.21</p>
+<p id="footer">disputes — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>docs</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">docs — npm@1.1.21</p>
+<p id="footer">docs — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>edit</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/explore.html">explore(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">edit — npm@1.1.21</p>
+<p id="footer">edit — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>explore</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/submodule.html">submodule(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/edit.html">edit(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">explore — npm@1.1.21</p>
+<p id="footer">explore — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>faq</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">faq — npm@1.1.21</p>
+<p id="footer">faq — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>find</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/search.html">search</a></h1> <p>Search for packages</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm search [search terms ...]</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>Search the registry for packages matching the search terms.</p>
-
-<h2 id="CONFIGURATION">CONFIGURATION</h2>
-
-<h3 id="description">description</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Show the description in <code>npm search</code></p>
-
-<h3 id="searchopts">searchopts</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that are always passed to search.</p>
-
-<h3 id="searchexclude">searchexclude</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that limit the results from search.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
-</div>
-<p id="footer">find — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>folders</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
</div>
-<p id="footer">folders — npm@1.1.21</p>
+<p id="footer">folders — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>get</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/config.html">config</a></h1> <p>Manage the npm configuration file</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm config set <key> <value> [--global]
-npm config get <key>
-npm config delete <key>
-npm config list
-npm config edit
-npm get <key>
-npm set <key> <value> [--global]</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>npm gets its configuration values from 6 sources, in this priority:</p>
-
-<h3 id="Command-Line-Flags">Command Line Flags</h3>
-
-<p>Putting <code>--foo bar</code> on the command line sets the
-<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli
-parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of
-the command will be given the value of <code>true</code>.</p>
-
-<h3 id="Environment-Variables">Environment Variables</h3>
-
-<p>Any environment variables that start with <code>npm_config_</code> will be interpreted
-as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in
-your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any
-environment configurations that are not given a value will be given the value
-of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will
-work the same.</p>
-
-<h3 id="Per-user-config-file">Per-user config file</h3>
-
-<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set above)</p>
-
-<p>This file is an ini-file formatted list of <code>key = value</code> parameters.</p>
-
-<h3 id="Global-config-file">Global config file</h3>
-
-<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
-This file is an ini-file formatted list of <code>key = value</code> parameters</p>
-
-<h3 id="Built-in-config-file">Built-in config file</h3>
-
-<p><code>path/to/npm/itself/npmrc</code></p>
-
-<p>This is an unchangeable "builtin"
-configuration file that npm keeps consistent across updates. Set
-fields in here using the <code>./configure</code> script that comes with npm.
-This is primarily for distribution maintainers to override default
-configs in a standard and consistent manner.</p>
-
-<h3 id="Default-Configs">Default Configs</h3>
-
-<p>A set of configuration parameters that are internal to npm, and are
-defaults if nothing else is specified.</p>
-
-<h2 id="Sub-commands">Sub-commands</h2>
-
-<p>Config supports the following sub-commands:</p>
-
-<h3 id="set">set</h3>
-
-<pre><code>npm config set key value</code></pre>
-
-<p>Sets the config key to the value.</p>
-
-<p>If value is omitted, then it sets it to "true".</p>
-
-<h3 id="get">get</h3>
-
-<pre><code>npm config get key</code></pre>
-
-<p>Echo the config value to stdout.</p>
-
-<h3 id="list">list</h3>
-
-<pre><code>npm config list</code></pre>
-
-<p>Show all the config settings.</p>
-
-<h3 id="delete">delete</h3>
-
-<pre><code>npm config delete key</code></pre>
-
-<p>Deletes the key from all configuration files.</p>
-
-<h3 id="edit">edit</h3>
-
-<pre><code>npm config edit</code></pre>
-
-<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the
-global config.</p>
-
-<h2 id="Shorthands-and-Other-CLI-Niceties">Shorthands and Other CLI Niceties</h2>
-
-<p>The following shorthands are parsed on the command-line:</p>
-
-<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
-
-<p>If the specified configuration param resolves unambiguously to a known
-configuration parameter, then it is expanded to that configuration
-parameter. For example:</p>
-
-<pre><code>npm ls --par
-# same as:
-npm ls --parseable</code></pre>
-
-<p>If multiple single-character shorthands are strung together, and the
-resulting combination is unambiguously not some other configuration
-param, then it is expanded to its various component pieces. For
-example:</p>
-
-<pre><code>npm ls -gpld
-# same as:
-npm ls --global --parseable --long --loglevel info</code></pre>
-
-<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2>
-
-<p>When running scripts (see <code><a href="../doc/scripts.html">scripts(1)</a></code>)
-the package.json "config" keys are overwritten in the environment if
-there is a config param of <code><name>[@<version>]:<key></code>. For example, if
-the package.json has this:</p>
-
-<pre><code>{ "name" : "foo"
-, "config" : { "port" : "8080" }
-, "scripts" : { "start" : "node server.js" } }</code></pre>
-
-<p>and the server.js is this:</p>
-
-<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
-
-<p>then the user could change the behavior by doing:</p>
-
-<pre><code>npm config set foo:port 80</code></pre>
-
-<h2 id="Config-Settings">Config Settings</h2>
-
-<h3 id="always-auth">always-auth</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Force npm to always require authentication when accessing the registry,
-even for <code>GET</code> requests.</p>
-
-<h3 id="bin-publish">bin-publish</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If set to true, then binary packages will be created on publish.</p>
-
-<p>This is the way to opt into the "bindist" behavior described below.</p>
-
-<h3 id="bindist">bindist</h3>
-
-<ul><li>Default: Unstable node versions, <code>null</code>, otherwise
-<code>"<node version>-<platform>-<os release>"</code></li><li>Type: String or <code>null</code></li></ul>
-
-<p>Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-<code>bindist</code> tag is found in the list of binary distributions, they will
-get that prebuilt version.</p>
-
-<p>Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their <code>build</code> directories automatically ignored.</p>
-
-<p>It's yet to be seen if this is a good idea.</p>
-
-<h3 id="browser">browser</h3>
-
-<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
-
-<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
-
-<h3 id="ca">ca</h3>
-
-<ul><li>Default: The npm CA certificate</li><li>Type: String or null</li></ul>
-
-<p>The Certificate Authority signing certificate that is trusted for SSL
-connections to the registry.</p>
-
-<p>Set to <code>null</code> to only allow "known" registrars, or to a specific CA cert
-to trust only that specific signing authority.</p>
-
-<p>See also the <code>strict-ssl</code> config.</p>
-
-<h3 id="cache">cache</h3>
-
-<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul>
-
-<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
-
-<h3 id="color">color</h3>
-
-<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
-
-<p>If false, never shows colors. If <code>"always"</code> then always shows colors.
-If true, then only prints color codes for tty file descriptors.</p>
-
-<h3 id="depth">depth</h3>
-
-<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
-
-<p>The depth to go when recursing directories for <code>npm ls</code> and
-<code>npm cache ls</code>.</p>
-
-<h3 id="description">description</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Show the description in <code>npm search</code></p>
-
-<h3 id="dev">dev</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Install <code>dev-dependencies</code> along with packages.</p>
-
-<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is
-set.</p>
-
-<h3 id="editor">editor</h3>
-
-<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
-or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
-
-<p>The command to run for <code>npm edit</code> or <code>npm config edit</code>.</p>
-
-<h3 id="force">force</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Makes various commands more forceful.</p>
-
-<ul><li>lifecycle script failure does not block progress.</li><li>publishing clobbers previously published versions.</li><li>skips cache when requesting from the registry.</li><li>prevents checks against clobbering non-npm files.</li></ul>
-
-<h3 id="global">global</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Operates in "global" mode, so that packages are installed into the
-<code>prefix</code> folder instead of the current working directory. See
-<code><a href="../doc/folders.html">folders(1)</a></code> for more on the differences in behavior.</p>
-
-<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the
-current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul>
-
-<h3 id="globalconfig">globalconfig</h3>
-
-<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul>
-
-<p>The config file to read for global config options.</p>
-
-<h3 id="globalignorefile">globalignorefile</h3>
-
-<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul>
-
-<p>The config file to read for global ignore patterns to apply to all users
-and all projects.</p>
-
-<p>If not found, but there is a "gitignore" file in the
-same directory, then that will be used instead.</p>
-
-<h3 id="group">group</h3>
-
-<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul>
-
-<p>The group to use when running package scripts in global mode as the root
-user.</p>
-
-<h3 id="https-proxy">https-proxy</h3>
-
-<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or
-<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul>
-
-<p>A proxy to use for outgoing https requests.</p>
-
-<h3 id="ignore">ignore</h3>
-
-<ul><li>Default: ""</li><li>Type: string</li></ul>
-
-<p>A white-space separated list of glob patterns of files to always exclude
-from packages when building tarballs.</p>
-
-<h3 id="init-version">init.version</h3>
-
-<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package version.</p>
-
-<h3 id="init-author-name">init.author.name</h3>
-
-<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's name.</p>
-
-<h3 id="init-author-email">init.author.email</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's email.</p>
-
-<h3 id="init-author-url">init.author.url</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
-
-<h3 id="link">link</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If true, then local installs will link if there is a suitable globally
-installed package.</p>
-
-<p>Note that this means that local installs can cause things to be
-installed into the global space at the same time. The link is only done
-if one of the two conditions are met:</p>
-
-<ul><li>The package is not already installed globally, or</li><li>the globally installed version is identical to the version that is
-being installed locally.</li></ul>
-
-<h3 id="logfd">logfd</h3>
-
-<ul><li>Default: stderr file descriptor</li><li>Type: Number or Stream</li></ul>
-
-<p>The location to write log output.</p>
-
-<h3 id="loglevel">loglevel</h3>
-
-<ul><li>Default: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul>
-
-<p>What level of logs to report. On failure, <em>all</em> logs are written to
-<code>npm-debug.log</code> in the current working directory.</p>
-
-<h3 id="logprefix">logprefix</h3>
-
-<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul>
-
-<p>Whether or not to prefix log messages with "npm" and the log level. See
-also "color" and "loglevel".</p>
-
-<h3 id="long">long</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show extended information in <code>npm ls</code></p>
-
-<h3 id="message">message</h3>
-
-<ul><li>Default: "%s"</li><li>Type: String</li></ul>
-
-<p>Commit message which is used by <code>npm version</code> when creating version commit.</p>
-
-<p>Any "%s" in the message will be replaced with the version number.</p>
-
-<h3 id="node-version">node-version</h3>
-
-<ul><li>Default: process.version</li><li>Type: semver or false</li></ul>
-
-<p>The node version to use when checking package's "engines" hash.</p>
-
-<h3 id="npat">npat</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Run tests on installation and report results to the
-<code>npaturl</code>.</p>
-
-<h3 id="npaturl">npaturl</h3>
-
-<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul>
-
-<p>The url to report npat test results.</p>
-
-<h3 id="onload-script">onload-script</h3>
-
-<ul><li>Default: false</li><li>Type: path</li></ul>
-
-<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
-usage.</p>
-
-<h3 id="outfd">outfd</h3>
-
-<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul>
-
-<p>Where to write "normal" output. This has no effect on log output.</p>
-
-<h3 id="parseable">parseable</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Output parseable results from commands that write to
-standard output.</p>
-
-<h3 id="prefix">prefix</h3>
-
-<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul>
-
-<p>The location to install global items. If set on the command line, then
-it forces non-global commands to run in the specified folder.</p>
-
-<h3 id="production">production</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Set to true to run in "production" mode.</p>
-
-<ol><li>devDependencies are not installed at the topmost level when running
-local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol>
-
-<h3 id="proxy">proxy</h3>
-
-<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul>
-
-<p>A proxy to use for outgoing http requests.</p>
-
-<h3 id="rebuild-bundle">rebuild-bundle</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Rebuild bundled dependencies after installation.</p>
-
-<h3 id="registry">registry</h3>
-
-<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
-
-<p>The base URL of the npm package registry.</p>
-
-<h3 id="rollback">rollback</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Remove failed installs.</p>
-
-<h3 id="save">save</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Save installed packages to a package.json file as dependencies.</p>
-
-<p>Only works if there is already a package.json file present.</p>
-
-<h3 id="searchopts">searchopts</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that are always passed to search.</p>
-
-<h3 id="searchexclude">searchexclude</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that limit the results from search.</p>
-
-<h3 id="shell">shell</h3>
-
-<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
-Windows</li><li>Type: path</li></ul>
-
-<p>The shell to run for the <code>npm explore</code> command.</p>
-
-<h3 id="strict-ssl">strict-ssl</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Whether or not to do SSL key validation when making requests to the
-registry via https.</p>
-
-<p>See also the <code>ca</code> config.</p>
-
-<h3 id="tag">tag</h3>
-
-<ul><li>Default: latest</li><li>Type: String</li></ul>
-
-<p>If you ask npm to install a package and don't tell it a specific version, then
-it will install the specified tag.</p>
-
-<p>Also the tag that is added to the package@version specified by the <code>npm
-tag</code> command, if no explicit tag is given.</p>
-
-<h3 id="tmp">tmp</h3>
-
-<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul>
-
-<p>Where to store temporary files and folders. All temp files are deleted
-on success, but left behind on failure for forensic purposes.</p>
-
-<h3 id="unicode">unicode</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>When set to true, npm uses unicode characters in the tree output. When
-false, it uses ascii characters to draw trees.</p>
-
-<h3 id="unsafe-perm">unsafe-perm</h3>
-
-<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul>
-
-<p>Set to true to suppress the UID/GID switching when running package
-scripts. If set explicitly to false, then installing as a non-root user
-will fail.</p>
-
-<h3 id="usage">usage</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Set to show short usage output (like the -H output)
-instead of complete help when doing <code><a href="../doc/help.html">help(1)</a></code>.</p>
-
-<h3 id="user">user</h3>
-
-<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul>
-
-<p>The UID to set to when running package scripts as root.</p>
-
-<h3 id="username">username</h3>
-
-<ul><li>Default: null</li><li>Type: String</li></ul>
-
-<p>The username on the npm registry. Set with <code>npm adduser</code></p>
-
-<h3 id="userconfig">userconfig</h3>
-
-<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul>
-
-<p>The location of user-level configuration settings.</p>
-
-<h3 id="userignorefile">userignorefile</h3>
-
-<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul>
-
-<p>The location of a user-level ignore file to apply to all packages.</p>
-
-<p>If not found, but there is a .gitignore file in the same directory, then
-that will be used instead.</p>
-
-<h3 id="umask">umask</h3>
-
-<ul><li>Default: 022</li><li>Type: Octal numeric string</li></ul>
-
-<p>The "umask" value to use when setting the file creation mode on files
-and folders.</p>
-
-<p>Folders and executables are given a mode which is <code>0777</code> masked against
-this value. Other files are given a mode which is <code>0666</code> masked against
-this value. Thus, the defaults are <code>0755</code> and <code>0644</code> respectively.</p>
-
-<h3 id="version">version</h3>
-
-<ul><li>Default: false</li><li>Type: boolean</li></ul>
-
-<p>If true, output the npm version and exit successfully.</p>
-
-<p>Only relevant when specified explicitly on the command line.</p>
-
-<h3 id="viewer">viewer</h3>
-
-<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
-
-<p>The program to use to view help content.</p>
-
-<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
-
-<h3 id="yes">yes</h3>
-
-<ul><li>Default: null</li><li>Type: Boolean or null</li></ul>
-
-<p>If set to <code>null</code>, then prompt the user for responses in some
-circumstances.</p>
-
-<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code>
-then answer "no" to any prompt.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
-</div>
-<p id="footer">get — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
+++ /dev/null
-<!doctype html>
-<html>
- <title>global</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/folders.html">folders</a></h1> <p>Folder Structures Used by npm</p>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>npm puts various things on your computer. That's its job.</p>
-
-<p>This document will tell you what it puts where.</p>
-
-<h3 id="tl-dr">tl;dr</h3>
-
-<ul><li>Local install (default): puts stuff in <code>./node_modules</code> of the current
-package root.</li><li>Global install (with <code>-g</code>): puts stuff in /usr/local or wherever node
-is installed.</li><li>Install it <strong>locally</strong> if you're going to <code>require()</code> it.</li><li>Install it <strong>globally</strong> if you're going to run it on the command line.</li><li>If you need both, then install it in both places, or use <code>npm link</code>.</li></ul>
-
-<h3 id="prefix-Configuration">prefix Configuration</h3>
-
-<p>The <code>prefix</code> config defaults to the location where node is installed.
-On most systems, this is <code>/usr/local</code>, and most of the time is the same
-as node's <code>process.installPrefix</code>.</p>
-
-<p>On windows, this is the exact location of the node.exe binary. On Unix
-systems, it's one level up, since node is typically installed at
-<code>{prefix}/bin/node</code> rather than <code>{prefix}/node.exe</code>.</p>
-
-<p>When the <code>global</code> flag is set, npm installs things into this prefix.
-When it is not set, it uses the root of the current package, or the
-current working directory if not in a package already.</p>
-
-<h3 id="Node-Modules">Node Modules</h3>
-
-<p>Packages are dropped into the <code>node_modules</code> folder under the <code>prefix</code>.
-When installing locally, this means that you can
-<code>require("packagename")</code> to load its main module, or
-<code>require("packagename/lib/path/to/sub/module")</code> to load other modules.</p>
-
-<p>Global installs on Unix systems go to <code>{prefix}/lib/node_modules</code>.
-Global installs on Windows go to <code>{prefix}/node_modules</code> (that is, no
-<code>lib</code> folder.)</p>
-
-<p>If you wish to <code>require()</code> a package, then install it locally.</p>
-
-<h3 id="Executables">Executables</h3>
-
-<p>When in global mode, executables are linked into <code>{prefix}/bin</code> on Unix,
-or directly into <code>{prefix}</code> on Windows.</p>
-
-<p>When in local mode, executables are linked into
-<code>./node_modules/.bin</code> so that they can be made available to scripts run
-through npm. (For example, so that a test runner will be in the path
-when you run <code>npm test</code>.)</p>
-
-<h3 id="Man-Pages">Man Pages</h3>
-
-<p>When in global mode, man pages are linked into <code>{prefix}/share/man</code>.</p>
-
-<p>When in local mode, man pages are not installed.</p>
-
-<p>Man pages are not installed on Windows systems.</p>
-
-<h3 id="Cache">Cache</h3>
-
-<p>See <code><a href="../doc/cache.html">cache(1)</a></code>. Cache files are stored in <code>~/.npm</code> on Posix, or
-<code>~/npm-cache</code> on Windows.</p>
-
-<p>This is controlled by the <code>cache</code> configuration param.</p>
-
-<h3 id="Temp-Files">Temp Files</h3>
-
-<p>Temporary files are stored by default in the folder specified by the
-<code>tmp</code> config, which defaults to the TMPDIR, TMP, or TEMP environment
-variables, or <code>/tmp</code> on Unix and <code>c:\windows\temp</code> on Windows.</p>
-
-<p>Temp files are given a unique folder under this root for each run of the
-program, and are deleted upon successful exit.</p>
-
-<h2 id="More-Information">More Information</h2>
-
-<p>When installing locally, npm first tries to find an appropriate
-<code>prefix</code> folder. This is so that <code>npm install foo@1.2.3</code> will install
-to the sensible root of your package, even if you happen to have <code>cd</code>ed
-into some other folder.</p>
-
-<p>Starting at the $PWD, npm will walk up the folder tree checking for a
-folder that contains either a <code>package.json</code> file, or a <code>node_modules</code>
-folder. If such a thing is found, then that is treated as the effective
-"current directory" for the purpose of running npm commands. (This
-behavior is inspired by and similar to git's .git-folder seeking
-logic when running git commands in a working dir.)</p>
-
-<p>If no package root is found, then the current folder is used.</p>
-
-<p>When you run <code>npm install foo@1.2.3</code>, then the package is loaded into
-the cache, and then unpacked into <code>./node_modules/foo</code>. Then, any of
-foo's dependencies are similarly unpacked into
-<code>./node_modules/foo/node_modules/...</code>.</p>
-
-<p>Any bin files are symlinked to <code>./node_modules/.bin/</code>, so that they may
-be found by npm scripts when necessary.</p>
-
-<h3 id="Global-Installation">Global Installation</h3>
-
-<p>If the <code>global</code> configuration is set to true, then npm will
-install packages "globally".</p>
-
-<p>For global installation, packages are installed roughly the same way,
-but using the folders described above.</p>
-
-<h3 id="Cycles-Conflicts-and-Folder-Parsimony">Cycles, Conflicts, and Folder Parsimony</h3>
-
-<p>Cycles are handled using the property of node's module system that it
-walks up the directories looking for <code>node_modules</code> folders. So, at every
-stage, if a package is already installed in an ancestor <code>node_modules</code>
-folder, then it is not installed at the current location.</p>
-
-<p>Consider the case above, where <code>foo -> bar -> baz</code>. Imagine if, in
-addition to that, baz depended on bar, so you'd have:
-<code>foo -> bar -> baz -> bar -> baz ...</code>. However, since the folder
-structure is: <code>foo/node_modules/bar/node_modules/baz</code>, there's no need to
-put another copy of bar into <code>.../baz/node_modules</code>, since when it calls
-require("bar"), it will get the copy that is installed in
-<code>foo/node_modules/bar</code>.</p>
-
-<p>This shortcut is only used if the exact same
-version would be installed in multiple nested <code>node_modules</code> folders. It
-is still possible to have <code>a/node_modules/b/node_modules/a</code> if the two
-"a" packages are different versions. However, without repeating the
-exact same package multiple times, an infinite regress will always be
-prevented.</p>
-
-<p>Another optimization can be made by installing dependencies at the
-highest level possible, below the localized "target" folder.</p>
-
-<h4 id="Example">Example</h4>
-
-<p>Consider this dependency graph:</p>
-
-<pre><code>foo
-+-- blerg@1.2.5
-+-- bar@1.2.3
-| +-- blerg@1.x (latest=1.3.7)
-| +-- baz@2.x
-| | `-- quux@3.x
-| | `-- bar@1.2.3 (cycle)
-| `-- asdf@*
-`-- baz@1.2.3
- `-- quux@3.x
- `-- bar</code></pre>
-
-<p>In this case, we might expect a folder structure like this:</p>
-
-<pre><code>foo
-+-- node_modules
- +-- blerg (1.2.5) <---[A]
- +-- bar (1.2.3) <---[B]
- | +-- node_modules
- | | `-- baz (2.0.2) <---[C]
- | | `-- node_modules
- | | `-- quux (3.2.0)
- | `-- asdf (2.3.4)
- `-- baz (1.2.3) <---[D]
- `-- node_modules
- `-- quux (3.2.0) <---[E]</code></pre>
-
-<p>Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are
-installed in foo's <code>node_modules</code> folder.</p>
-
-<p>Even though the latest copy of blerg is 1.3.7, foo has a specific
-dependency on version 1.2.5. So, that gets installed at [A]. Since the
-parent installation of blerg satisfie's bar's dependency on blerg@1.x,
-it does not install another copy under [B].</p>
-
-<p>Bar [B] also has dependencies on baz and asdf, so those are installed in
-bar's <code>node_modules</code> folder. Because it depends on <code>baz@2.x</code>, it cannot
-re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
-and must install its own copy [C].</p>
-
-<p>Underneath bar, the <code>baz->quux->bar</code> dependency creates a cycle.
-However, because <code>bar</code> is already in <code>quux</code>'s ancestry [B], it does not
-unpack another copy of bar into that folder.</p>
-
-<p>Underneath <code>foo->baz</code> [D], quux's [E] folder tree is empty, because its
-dependency on bar is satisfied by the parent folder copy installed at [B].</p>
-
-<p>For a graphical breakdown of what is installed where, use <code>npm ls</code>.</p>
-
-<h3 id="Publishing">Publishing</h3>
-
-<p>Upon publishing, npm will look in the <code>node_modules</code> folder. If any of
-the items there are not in the <code>bundledDependencies</code> array, then they will
-not be included in the package tarball.</p>
-
-<p>This allows a package maintainer to install all of their dependencies
-(and dev dependencies) locally, but only re-publish those items that
-cannot be found elsewhere. See <code><a href="../doc/json.html">json(1)</a></code> for more information.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/pack.html">pack(1)</a></li><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li></ul>
-</div>
-<p id="footer">global — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>help-search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/help.html">help(1)</a></li></ul>
</div>
-<p id="footer">help-search — npm@1.1.21</p>
+<p id="footer">help-search — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>help</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/npm.html">npm(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/help-search.html">help-search(1)</a></li><li><a href="../doc/index.html">index(1)</a></li></ul>
</div>
-<p id="footer">help — npm@1.1.21</p>
+<p id="footer">help — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>home</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/docs.html">docs</a></h1> <p>Docs for a package in a web browser maybe</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm docs <pkgname>
-npm home <pkgname></code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This command tries to guess at the likely location of a package's
-documentation URL, and then tries to open it using the <code>--browser</code>
-config param.</p>
-
-<h2 id="CONFIGURATION">CONFIGURATION</h2>
-
-<h3 id="browser">browser</h3>
-
-<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
-
-<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
-
-<h3 id="registry">registry</h3>
-
-<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
-
-<p>The base URL of the npm package registry.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/json.html">json(1)</a></li></ul>
-</div>
-<p id="footer">home — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>index</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<p> Display npm username</p>
</div>
-<p id="footer">index — npm@1.1.21</p>
+<p id="footer">index — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>init</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/version.html">version(1)</a></li></ul>
</div>
-<p id="footer">init — npm@1.1.21</p>
+<p id="footer">init — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>install</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/rebuild.html">rebuild(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/shrinkwrap.html">shrinkwrap(1)</a></li></ul>
</div>
-<p id="footer">install — npm@1.1.21</p>
+<p id="footer">install — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>json</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<pre><code>git://github.com/user/project.git#commit-ish
git+ssh://user@hostname: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</code></pre>
<p>If this is spelled <code>"bundleDependencies"</code>, then that is also honorable.</p>
+<h2 id="optionalDependencies">optionalDependencies</h2>
+
+<p>If a dependency can be used, but you would like npm to proceed if it
+cannot be found or fails to install, then you may put it in the
+<code>optionalDependencies</code> hash. This is a map of package name to version
+or url, just like the <code>dependencies</code> hash. The difference is that
+failure is tolerated.</p>
+
+<p>It is still your program's responsibility to handle the lack of the
+dependency. For example, something like this:</p>
+
+<pre><code>try {
+ var foo = require('foo')
+ var fooVersion = require('foo/package.json').version
+} catch (er) {
+ foo = null
+}
+if ( notGoodFooVersion(fooVersion) ) {
+ foo = null
+}
+
+// .. then later in your program ..
+
+if (foo) {
+ foo.doFooThings()
+}</code></pre>
+
+<p>Entries in <code>optionalDependencies</code> will override entries of the same name in
+<code>dependencies</code>, so it's usually best to only put in one place.</p>
+
<h2 id="engines">engines</h2>
<p>You can specify the version of
<ul><li><a href="../doc/semver.html">semver(1)</a></li><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/version.html">version(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/rm.html">rm(1)</a></li></ul>
</div>
-<p id="footer">json — npm@1.1.21</p>
+<p id="footer">json — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>link</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">link — npm@1.1.21</p>
+<p id="footer">link — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>list</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
</div>
-<p id="footer">list — npm@1.1.21</p>
+<p id="footer">list — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>ln</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/link.html">link</a></h1> <p>Symlink a package folder</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm link (in package folder)
-npm link <pkgname></code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>Package linking is a two-step process.</p>
-
-<p>First, <code>npm link</code> in a package folder will create a globally-installed
-symbolic link from <code>prefix/package-name</code> to the current folder.</p>
-
-<p>Next, in some other location, <code>npm link package-name</code> will create a
-symlink from the local <code>node_modules</code> folder to the global symlink.</p>
-
-<p>When creating tarballs for <code>npm publish</code>, the linked packages are
-"snapshotted" to their current state by resolving the symbolic links.</p>
-
-<p>This is
-handy for installing your own stuff, so that you can work on it and test it
-iteratively without having to continually rebuild.</p>
-
-<p>For example:</p>
-
-<pre><code>cd ~/projects/node-redis # go into the package directory
-npm link # creates global link
-cd ~/projects/node-bloggy # go into some other package directory.
-npm link redis # link-install the package</code></pre>
-
-<p>Now, any changes to ~/projects/node-redis will be reflected in
-~/projects/node-bloggy/node_modules/redis/</p>
-
-<p>You may also shortcut the two steps in one. For example, to do the
-above use-case in a shorter way:</p>
-
-<pre><code>cd ~/projects/node-bloggy # go into the dir of your main project
-npm link ../node-redis # link the dir of your dependency</code></pre>
-
-<p>The second line is the equivalent of doing:</p>
-
-<pre><code>(cd ../node-redis; npm link)
-npm link redis</code></pre>
-
-<p>That is, it first creates a global link, and then links the global
-installation target into your project's <code>node_modules</code> folder.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
-</div>
-<p id="footer">ln — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
+++ /dev/null
-<!doctype html>
-<html>
- <title>ls</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/ls.html">ls</a></h1> <p>List installed packages</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm list
-npm ls
-npm la
-npm ll</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This command will print to stdout all the versions of packages that are
-installed, as well as their dependencies, in a tree-structure.</p>
-
-<p>It does not take positional arguments, though you may set config flags
-like with any other command, such as <code>-g</code> to list global packages.</p>
-
-<p>It will print out extraneous, missing, and invalid packages.</p>
-
-<p>When run as <code>ll</code> or <code>la</code>, it shows extended information by default.</p>
-
-<h2 id="CONFIGURATION">CONFIGURATION</h2>
-
-<h3 id="long">long</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show extended information.</p>
-
-<h3 id="parseable">parseable</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show parseable output instead of tree view.</p>
-
-<h3 id="global">global</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>List packages in the global install prefix instead of in the current
-project.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/link.html">link(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/update.html">update(1)</a></li></ul>
-</div>
-<p id="footer">ls — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<h2 id="VERSION">VERSION</h2>
-<p>1.1.21</p>
+<p>1.1.24</p>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<ul><li><a href="../doc/help.html">help(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/README.html">README</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/index.html">index(1)</a></li><li><a href="../api/npm.html">npm(3)</a></li></ul>
</div>
-<p id="footer">npm — npm@1.1.21</p>
+<p id="footer">npm — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>outdated</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/update.html">update(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li></ul>
</div>
-<p id="footer">outdated — npm@1.1.21</p>
+<p id="footer">outdated — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>owner</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">owner — npm@1.1.21</p>
+<p id="footer">owner — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>pack</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/cache.html">cache(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">pack — npm@1.1.21</p>
+<p id="footer">pack — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>prefix</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/root.html">root(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">prefix — npm@1.1.21</p>
+<p id="footer">prefix — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>prune</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">prune — npm@1.1.21</p>
+<p id="footer">prune — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>publish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/tag.html">tag(1)</a></li></ul>
</div>
-<p id="footer">publish — npm@1.1.21</p>
+<p id="footer">publish — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>rebuild</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/build.html">build(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">rebuild — npm@1.1.21</p>
+<p id="footer">rebuild — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>registry</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
-<p id="footer">registry — npm@1.1.21</p>
+<p id="footer">registry — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>removing-npm</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/README.html">README</a></li><li><a href="../doc/rm.html">rm(1)</a></li><li><a href="../doc/prune.html">prune(1)</a></li></ul>
</div>
-<p id="footer">removing-npm — npm@1.1.21</p>
+<p id="footer">removing-npm — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>restart</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">restart — npm@1.1.21</p>
+<p id="footer">restart — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>rm</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/rm.html">rm</a></h1> <p>Remove a package</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm rm <name>
-npm uninstall <name></code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>This uninstalls a package, completely removing everything npm installed
-on its behalf.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
-</div>
-<p id="footer">rm — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>root</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/prefix.html">prefix(1)</a></li><li><a href="../doc/bin.html">bin(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">root — npm@1.1.21</p>
+<p id="footer">root — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>run-script</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">run-script — npm@1.1.21</p>
+<p id="footer">run-script — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>scripts</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
-<p id="footer">scripts — npm@1.1.21</p>
+<p id="footer">scripts — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>search</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/view.html">view(1)</a></li></ul>
</div>
-<p id="footer">search — npm@1.1.21</p>
+<p id="footer">search — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>semver</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
-<p id="footer">semver — npm@1.1.21</p>
+<p id="footer">semver — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
+++ /dev/null
-<!doctype html>
-<html>
- <title>set</title>
- <meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
-
- <body>
- <div id="wrapper">
-<h1><a href="../doc/config.html">config</a></h1> <p>Manage the npm configuration file</p>
-
-<h2 id="SYNOPSIS">SYNOPSIS</h2>
-
-<pre><code>npm config set <key> <value> [--global]
-npm config get <key>
-npm config delete <key>
-npm config list
-npm config edit
-npm get <key>
-npm set <key> <value> [--global]</code></pre>
-
-<h2 id="DESCRIPTION">DESCRIPTION</h2>
-
-<p>npm gets its configuration values from 6 sources, in this priority:</p>
-
-<h3 id="Command-Line-Flags">Command Line Flags</h3>
-
-<p>Putting <code>--foo bar</code> on the command line sets the
-<code>foo</code> configuration parameter to <code>"bar"</code>. A <code>--</code> argument tells the cli
-parser to stop reading flags. A <code>--flag</code> parameter that is at the <em>end</em> of
-the command will be given the value of <code>true</code>.</p>
-
-<h3 id="Environment-Variables">Environment Variables</h3>
-
-<p>Any environment variables that start with <code>npm_config_</code> will be interpreted
-as a configuration parameter. For example, putting <code>npm_config_foo=bar</code> in
-your environment will set the <code>foo</code> configuration parameter to <code>bar</code>. Any
-environment configurations that are not given a value will be given the value
-of <code>true</code>. Config values are case-insensitive, so <code>NPM_CONFIG_FOO=bar</code> will
-work the same.</p>
-
-<h3 id="Per-user-config-file">Per-user config file</h3>
-
-<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set above)</p>
-
-<p>This file is an ini-file formatted list of <code>key = value</code> parameters.</p>
-
-<h3 id="Global-config-file">Global config file</h3>
-
-<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
-This file is an ini-file formatted list of <code>key = value</code> parameters</p>
-
-<h3 id="Built-in-config-file">Built-in config file</h3>
-
-<p><code>path/to/npm/itself/npmrc</code></p>
-
-<p>This is an unchangeable "builtin"
-configuration file that npm keeps consistent across updates. Set
-fields in here using the <code>./configure</code> script that comes with npm.
-This is primarily for distribution maintainers to override default
-configs in a standard and consistent manner.</p>
-
-<h3 id="Default-Configs">Default Configs</h3>
-
-<p>A set of configuration parameters that are internal to npm, and are
-defaults if nothing else is specified.</p>
-
-<h2 id="Sub-commands">Sub-commands</h2>
-
-<p>Config supports the following sub-commands:</p>
-
-<h3 id="set">set</h3>
-
-<pre><code>npm config set key value</code></pre>
-
-<p>Sets the config key to the value.</p>
-
-<p>If value is omitted, then it sets it to "true".</p>
-
-<h3 id="get">get</h3>
-
-<pre><code>npm config get key</code></pre>
-
-<p>Echo the config value to stdout.</p>
-
-<h3 id="list">list</h3>
-
-<pre><code>npm config list</code></pre>
-
-<p>Show all the config settings.</p>
-
-<h3 id="delete">delete</h3>
-
-<pre><code>npm config delete key</code></pre>
-
-<p>Deletes the key from all configuration files.</p>
-
-<h3 id="edit">edit</h3>
-
-<pre><code>npm config edit</code></pre>
-
-<p>Opens the config file in an editor. Use the <code>--global</code> flag to edit the
-global config.</p>
-
-<h2 id="Shorthands-and-Other-CLI-Niceties">Shorthands and Other CLI Niceties</h2>
-
-<p>The following shorthands are parsed on the command-line:</p>
-
-<ul><li><code>-v</code>: <code>--version</code></li><li><code>-h</code>, <code>-?</code>, <code>--help</code>, <code>-H</code>: <code>--usage</code></li><li><code>-s</code>, <code>--silent</code>: <code>--loglevel silent</code></li><li><code>-d</code>: <code>--loglevel info</code></li><li><code>-dd</code>, <code>--verbose</code>: <code>--loglevel verbose</code></li><li><code>-ddd</code>: <code>--loglevel silly</code></li><li><code>-g</code>: <code>--global</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-m</code>: <code>--message</code></li><li><code>-p</code>, <code>--porcelain</code>: <code>--parseable</code></li><li><code>-reg</code>: <code>--registry</code></li><li><code>-v</code>: <code>--version</code></li><li><code>-f</code>: <code>--force</code></li><li><code>-l</code>: <code>--long</code></li><li><code>-desc</code>: <code>--description</code></li><li><code>-S</code>: <code>--save</code></li><li><code>-y</code>: <code>--yes</code></li><li><code>-n</code>: <code>--yes false</code></li><li><code>ll</code> and <code>la</code> commands: <code>ls --long</code></li></ul>
-
-<p>If the specified configuration param resolves unambiguously to a known
-configuration parameter, then it is expanded to that configuration
-parameter. For example:</p>
-
-<pre><code>npm ls --par
-# same as:
-npm ls --parseable</code></pre>
-
-<p>If multiple single-character shorthands are strung together, and the
-resulting combination is unambiguously not some other configuration
-param, then it is expanded to its various component pieces. For
-example:</p>
-
-<pre><code>npm ls -gpld
-# same as:
-npm ls --global --parseable --long --loglevel info</code></pre>
-
-<h2 id="Per-Package-Config-Settings">Per-Package Config Settings</h2>
-
-<p>When running scripts (see <code><a href="../doc/scripts.html">scripts(1)</a></code>)
-the package.json "config" keys are overwritten in the environment if
-there is a config param of <code><name>[@<version>]:<key></code>. For example, if
-the package.json has this:</p>
-
-<pre><code>{ "name" : "foo"
-, "config" : { "port" : "8080" }
-, "scripts" : { "start" : "node server.js" } }</code></pre>
-
-<p>and the server.js is this:</p>
-
-<pre><code>http.createServer(...).listen(process.env.npm_package_config_port)</code></pre>
-
-<p>then the user could change the behavior by doing:</p>
-
-<pre><code>npm config set foo:port 80</code></pre>
-
-<h2 id="Config-Settings">Config Settings</h2>
-
-<h3 id="always-auth">always-auth</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Force npm to always require authentication when accessing the registry,
-even for <code>GET</code> requests.</p>
-
-<h3 id="bin-publish">bin-publish</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If set to true, then binary packages will be created on publish.</p>
-
-<p>This is the way to opt into the "bindist" behavior described below.</p>
-
-<h3 id="bindist">bindist</h3>
-
-<ul><li>Default: Unstable node versions, <code>null</code>, otherwise
-<code>"<node version>-<platform>-<os release>"</code></li><li>Type: String or <code>null</code></li></ul>
-
-<p>Experimental: on stable versions of node, binary distributions will be
-created with this tag. If a user then installs that package, and their
-<code>bindist</code> tag is found in the list of binary distributions, they will
-get that prebuilt version.</p>
-
-<p>Pre-build node packages have their preinstall, install, and postinstall
-scripts stripped (since they are run prior to publishing), and do not
-have their <code>build</code> directories automatically ignored.</p>
-
-<p>It's yet to be seen if this is a good idea.</p>
-
-<h3 id="browser">browser</h3>
-
-<ul><li>Default: OS X: <code>"open"</code>, others: <code>"google-chrome"</code></li><li>Type: String</li></ul>
-
-<p>The browser that is called by the <code>npm docs</code> command to open websites.</p>
-
-<h3 id="ca">ca</h3>
-
-<ul><li>Default: The npm CA certificate</li><li>Type: String or null</li></ul>
-
-<p>The Certificate Authority signing certificate that is trusted for SSL
-connections to the registry.</p>
-
-<p>Set to <code>null</code> to only allow "known" registrars, or to a specific CA cert
-to trust only that specific signing authority.</p>
-
-<p>See also the <code>strict-ssl</code> config.</p>
-
-<h3 id="cache">cache</h3>
-
-<ul><li>Default: Windows: <code>~/npm-cache</code>, Posix: <code>~/.npm</code></li><li>Type: path</li></ul>
-
-<p>The location of npm's cache directory. See <code><a href="../doc/cache.html">cache(1)</a></code></p>
-
-<h3 id="color">color</h3>
-
-<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean or <code>"always"</code></li></ul>
-
-<p>If false, never shows colors. If <code>"always"</code> then always shows colors.
-If true, then only prints color codes for tty file descriptors.</p>
-
-<h3 id="depth">depth</h3>
-
-<ul><li>Default: Infinity</li><li>Type: Number</li></ul>
-
-<p>The depth to go when recursing directories for <code>npm ls</code> and
-<code>npm cache ls</code>.</p>
-
-<h3 id="description">description</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Show the description in <code>npm search</code></p>
-
-<h3 id="dev">dev</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Install <code>dev-dependencies</code> along with packages.</p>
-
-<p>Note that <code>dev-dependencies</code> are also installed if the <code>npat</code> flag is
-set.</p>
-
-<h3 id="editor">editor</h3>
-
-<ul><li>Default: <code>EDITOR</code> environment variable if set, or <code>"vi"</code> on Posix,
-or <code>"notepad"</code> on Windows.</li><li>Type: path</li></ul>
-
-<p>The command to run for <code>npm edit</code> or <code>npm config edit</code>.</p>
-
-<h3 id="force">force</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Makes various commands more forceful.</p>
-
-<ul><li>lifecycle script failure does not block progress.</li><li>publishing clobbers previously published versions.</li><li>skips cache when requesting from the registry.</li><li>prevents checks against clobbering non-npm files.</li></ul>
-
-<h3 id="global">global</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Operates in "global" mode, so that packages are installed into the
-<code>prefix</code> folder instead of the current working directory. See
-<code><a href="../doc/folders.html">folders(1)</a></code> for more on the differences in behavior.</p>
-
-<ul><li>packages are installed into the <code>prefix/node_modules</code> folder, instead of the
-current working directory.</li><li>bin files are linked to <code>prefix/bin</code></li><li>man pages are linked to <code>prefix/share/man</code></li></ul>
-
-<h3 id="globalconfig">globalconfig</h3>
-
-<ul><li>Default: {prefix}/etc/npmrc</li><li>Type: path</li></ul>
-
-<p>The config file to read for global config options.</p>
-
-<h3 id="globalignorefile">globalignorefile</h3>
-
-<ul><li>Default: {prefix}/etc/npmignore</li><li>Type: path</li></ul>
-
-<p>The config file to read for global ignore patterns to apply to all users
-and all projects.</p>
-
-<p>If not found, but there is a "gitignore" file in the
-same directory, then that will be used instead.</p>
-
-<h3 id="group">group</h3>
-
-<ul><li>Default: GID of the current process</li><li>Type: String or Number</li></ul>
-
-<p>The group to use when running package scripts in global mode as the root
-user.</p>
-
-<h3 id="https-proxy">https-proxy</h3>
-
-<ul><li>Default: the <code>HTTPS_PROXY</code> or <code>https_proxy</code> or <code>HTTP_PROXY</code> or
-<code>http_proxy</code> environment variables.</li><li>Type: url</li></ul>
-
-<p>A proxy to use for outgoing https requests.</p>
-
-<h3 id="ignore">ignore</h3>
-
-<ul><li>Default: ""</li><li>Type: string</li></ul>
-
-<p>A white-space separated list of glob patterns of files to always exclude
-from packages when building tarballs.</p>
-
-<h3 id="init-version">init.version</h3>
-
-<ul><li>Default: "0.0.0"</li><li>Type: semver</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package version.</p>
-
-<h3 id="init-author-name">init.author.name</h3>
-
-<ul><li>Default: "0.0.0"</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's name.</p>
-
-<h3 id="init-author-email">init.author.email</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's email.</p>
-
-<h3 id="init-author-url">init.author.url</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>The value <code>npm init</code> should use by default for the package author's homepage.</p>
-
-<h3 id="link">link</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>If true, then local installs will link if there is a suitable globally
-installed package.</p>
-
-<p>Note that this means that local installs can cause things to be
-installed into the global space at the same time. The link is only done
-if one of the two conditions are met:</p>
-
-<ul><li>The package is not already installed globally, or</li><li>the globally installed version is identical to the version that is
-being installed locally.</li></ul>
-
-<h3 id="logfd">logfd</h3>
-
-<ul><li>Default: stderr file descriptor</li><li>Type: Number or Stream</li></ul>
-
-<p>The location to write log output.</p>
-
-<h3 id="loglevel">loglevel</h3>
-
-<ul><li>Default: "warn"</li><li>Type: String</li><li>Values: "silent", "win", "error", "warn", "info", "verbose", "silly"</li></ul>
-
-<p>What level of logs to report. On failure, <em>all</em> logs are written to
-<code>npm-debug.log</code> in the current working directory.</p>
-
-<h3 id="logprefix">logprefix</h3>
-
-<ul><li>Default: true on Posix, false on Windows</li><li>Type: Boolean</li></ul>
-
-<p>Whether or not to prefix log messages with "npm" and the log level. See
-also "color" and "loglevel".</p>
-
-<h3 id="long">long</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Show extended information in <code>npm ls</code></p>
-
-<h3 id="message">message</h3>
-
-<ul><li>Default: "%s"</li><li>Type: String</li></ul>
-
-<p>Commit message which is used by <code>npm version</code> when creating version commit.</p>
-
-<p>Any "%s" in the message will be replaced with the version number.</p>
-
-<h3 id="node-version">node-version</h3>
-
-<ul><li>Default: process.version</li><li>Type: semver or false</li></ul>
-
-<p>The node version to use when checking package's "engines" hash.</p>
-
-<h3 id="npat">npat</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Run tests on installation and report results to the
-<code>npaturl</code>.</p>
-
-<h3 id="npaturl">npaturl</h3>
-
-<ul><li>Default: Not yet implemented</li><li>Type: url</li></ul>
-
-<p>The url to report npat test results.</p>
-
-<h3 id="onload-script">onload-script</h3>
-
-<ul><li>Default: false</li><li>Type: path</li></ul>
-
-<p>A node module to <code>require()</code> when npm loads. Useful for programmatic
-usage.</p>
-
-<h3 id="outfd">outfd</h3>
-
-<ul><li>Default: standard output file descriptor</li><li>Type: Number or Stream</li></ul>
-
-<p>Where to write "normal" output. This has no effect on log output.</p>
-
-<h3 id="parseable">parseable</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Output parseable results from commands that write to
-standard output.</p>
-
-<h3 id="prefix">prefix</h3>
-
-<ul><li>Default: node's process.installPrefix</li><li>Type: path</li></ul>
-
-<p>The location to install global items. If set on the command line, then
-it forces non-global commands to run in the specified folder.</p>
-
-<h3 id="production">production</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Set to true to run in "production" mode.</p>
-
-<ol><li>devDependencies are not installed at the topmost level when running
-local <code>npm install</code> without any arguments.</li><li>Set the NODE_ENV="production" for lifecycle scripts.</li></ol>
-
-<h3 id="proxy">proxy</h3>
-
-<ul><li>Default: <code>HTTP_PROXY</code> or <code>http_proxy</code> environment variable, or null</li><li>Type: url</li></ul>
-
-<p>A proxy to use for outgoing http requests.</p>
-
-<h3 id="rebuild-bundle">rebuild-bundle</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Rebuild bundled dependencies after installation.</p>
-
-<h3 id="registry">registry</h3>
-
-<ul><li>Default: https://registry.npmjs.org/</li><li>Type: url</li></ul>
-
-<p>The base URL of the npm package registry.</p>
-
-<h3 id="rollback">rollback</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Remove failed installs.</p>
-
-<h3 id="save">save</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Save installed packages to a package.json file as dependencies.</p>
-
-<p>Only works if there is already a package.json file present.</p>
-
-<h3 id="searchopts">searchopts</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that are always passed to search.</p>
-
-<h3 id="searchexclude">searchexclude</h3>
-
-<ul><li>Default: ""</li><li>Type: String</li></ul>
-
-<p>Space-separated options that limit the results from search.</p>
-
-<h3 id="shell">shell</h3>
-
-<ul><li>Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
-Windows</li><li>Type: path</li></ul>
-
-<p>The shell to run for the <code>npm explore</code> command.</p>
-
-<h3 id="strict-ssl">strict-ssl</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>Whether or not to do SSL key validation when making requests to the
-registry via https.</p>
-
-<p>See also the <code>ca</code> config.</p>
-
-<h3 id="tag">tag</h3>
-
-<ul><li>Default: latest</li><li>Type: String</li></ul>
-
-<p>If you ask npm to install a package and don't tell it a specific version, then
-it will install the specified tag.</p>
-
-<p>Also the tag that is added to the package@version specified by the <code>npm
-tag</code> command, if no explicit tag is given.</p>
-
-<h3 id="tmp">tmp</h3>
-
-<ul><li>Default: TMPDIR environment variable, or "/tmp"</li><li>Type: path</li></ul>
-
-<p>Where to store temporary files and folders. All temp files are deleted
-on success, but left behind on failure for forensic purposes.</p>
-
-<h3 id="unicode">unicode</h3>
-
-<ul><li>Default: true</li><li>Type: Boolean</li></ul>
-
-<p>When set to true, npm uses unicode characters in the tree output. When
-false, it uses ascii characters to draw trees.</p>
-
-<h3 id="unsafe-perm">unsafe-perm</h3>
-
-<ul><li>Default: false if running as root, true otherwise</li><li>Type: Boolean</li></ul>
-
-<p>Set to true to suppress the UID/GID switching when running package
-scripts. If set explicitly to false, then installing as a non-root user
-will fail.</p>
-
-<h3 id="usage">usage</h3>
-
-<ul><li>Default: false</li><li>Type: Boolean</li></ul>
-
-<p>Set to show short usage output (like the -H output)
-instead of complete help when doing <code><a href="../doc/help.html">help(1)</a></code>.</p>
-
-<h3 id="user">user</h3>
-
-<ul><li>Default: "nobody"</li><li>Type: String or Number</li></ul>
-
-<p>The UID to set to when running package scripts as root.</p>
-
-<h3 id="username">username</h3>
-
-<ul><li>Default: null</li><li>Type: String</li></ul>
-
-<p>The username on the npm registry. Set with <code>npm adduser</code></p>
-
-<h3 id="userconfig">userconfig</h3>
-
-<ul><li>Default: ~/.npmrc</li><li>Type: path</li></ul>
-
-<p>The location of user-level configuration settings.</p>
-
-<h3 id="userignorefile">userignorefile</h3>
-
-<ul><li>Default: ~/.npmignore</li><li>Type: path</li></ul>
-
-<p>The location of a user-level ignore file to apply to all packages.</p>
-
-<p>If not found, but there is a .gitignore file in the same directory, then
-that will be used instead.</p>
-
-<h3 id="umask">umask</h3>
-
-<ul><li>Default: 022</li><li>Type: Octal numeric string</li></ul>
-
-<p>The "umask" value to use when setting the file creation mode on files
-and folders.</p>
-
-<p>Folders and executables are given a mode which is <code>0777</code> masked against
-this value. Other files are given a mode which is <code>0666</code> masked against
-this value. Thus, the defaults are <code>0755</code> and <code>0644</code> respectively.</p>
-
-<h3 id="version">version</h3>
-
-<ul><li>Default: false</li><li>Type: boolean</li></ul>
-
-<p>If true, output the npm version and exit successfully.</p>
-
-<p>Only relevant when specified explicitly on the command line.</p>
-
-<h3 id="viewer">viewer</h3>
-
-<ul><li>Default: "man" on Posix, "browser" on Windows</li><li>Type: path</li></ul>
-
-<p>The program to use to view help content.</p>
-
-<p>Set to <code>"browser"</code> to view html help content in the default web browser.</p>
-
-<h3 id="yes">yes</h3>
-
-<ul><li>Default: null</li><li>Type: Boolean or null</li></ul>
-
-<p>If set to <code>null</code>, then prompt the user for responses in some
-circumstances.</p>
-
-<p>If set to <code>true</code>, then answer "yes" to any prompt. If set to <code>false</code>
-then answer "no" to any prompt.</p>
-
-<h2 id="SEE-ALSO">SEE ALSO</h2>
-
-<ul><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/npm.html">npm(1)</a></li></ul>
-</div>
-<p id="footer">set — npm@1.1.0-alpha-3</p>
-<script>
-;(function () {
-var wrapper = document.getElementById("wrapper")
-var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
- .filter(function (el) {
- return el.parentNode === wrapper
- && el.tagName.match(/H[1-6]/)
- && el.id
- })
-var l = 2
- , toc = document.createElement("ul")
-toc.innerHTML = els.map(function (el) {
- var i = el.tagName.charAt(1)
- , out = ""
- while (i > l) {
- out += "<ul>"
- l ++
- }
- while (i < l) {
- out += "</ul>"
- l --
- }
- out += "<li><a href='#" + el.id + "'>" +
- ( el.innerText || el.text || el.innerHTML)
- + "</a>"
- return out
-}).join("\n")
-toc.id = "toc"
-document.body.appendChild(toc)
-})()
-</script>
-</body></html>
<html>
<title>shrinkwrap</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">shrinkwrap — npm@1.1.21</p>
+<p id="footer">shrinkwrap — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>star</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/view.html">view(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">star — npm@1.1.21</p>
+<p id="footer">star — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>start</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">start — npm@1.1.21</p>
+<p id="footer">start — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>stop</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/test.html">test(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li></ul>
</div>
-<p id="footer">stop — npm@1.1.21</p>
+<p id="footer">stop — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>submodule</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
-<p id="footer">submodule — npm@1.1.21</p>
+<p id="footer">submodule — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>tag</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">tag — npm@1.1.21</p>
+<p id="footer">tag — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>test</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/run-script.html">run-script(1)</a></li><li><a href="../doc/scripts.html">scripts(1)</a></li><li><a href="../doc/start.html">start(1)</a></li><li><a href="../doc/restart.html">restart(1)</a></li><li><a href="../doc/stop.html">stop(1)</a></li></ul>
</div>
-<p id="footer">test — npm@1.1.21</p>
+<p id="footer">test — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>uninstall</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/prune.html">prune(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
-<p id="footer">uninstall — npm@1.1.21</p>
+<p id="footer">uninstall — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>unpublish</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/deprecate.html">deprecate(1)</a></li><li><a href="../doc/publish.html">publish(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li><li><a href="../doc/owner.html">owner(1)</a></li></ul>
</div>
-<p id="footer">unpublish — npm@1.1.21</p>
+<p id="footer">unpublish — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>update</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/outdated.html">outdated(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/list.html">list(1)</a></li></ul>
</div>
-<p id="footer">update — npm@1.1.21</p>
+<p id="footer">update — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>version</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/init.html">init(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/semver.html">semver(1)</a></li></ul>
</div>
-<p id="footer">version — npm@1.1.21</p>
+<p id="footer">version — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>view</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/search.html">search(1)</a></li><li><a href="../doc/registry.html">registry(1)</a></li><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/docs.html">docs(1)</a></li></ul>
</div>
-<p id="footer">view — npm@1.1.21</p>
+<p id="footer">view — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>whoami</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
<ul><li><a href="../doc/config.html">config(1)</a></li><li><a href="../doc/adduser.html">adduser(1)</a></li></ul>
</div>
-<p id="footer">whoami — npm@1.1.21</p>
+<p id="footer">whoami — npm@1.1.24</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
<html>
<title>@NAME@</title>
<meta http-equiv="content-type" value="text/html;utf-8">
- <link rel="stylesheet" type="text/css" href="./style.css">
+ <link rel="stylesheet" type="text/css" href="../style.css">
<body>
<div id="wrapper">
+/* @license
+ * MyFonts Webfont Build ID 2303021, 2012-06-04T14:43:21-0400
+ *
+ * The fonts listed in this notice are subject to the End User License
+ * Agreement(s) entered into by the website owner. All other parties are
+ * explicitly restricted from using the Licensed Webfonts(s).
+ *
+ * You may obtain a valid license at the URLs below.
+ *
+ * Webfont: Gubblebum Blocky by Jelloween
+ * URL: http://www.myfonts.com/fonts/jelloween/gubblebum/blocky/
+ * Licensed pageviews: unspecified
+ *
+ *
+ * License: http://www.myfonts.com/viewlicense?type=web&buildid=2303021
+ * Webfonts copyright: Copyright (c) 2007 by Tjarda Koster. All rights reserved.
+ *
+ * © 2012 Bitstream Inc
+*/
+
+@font-face {
+ font-family: gubblefont;
+ src: url('webfonts/23242D_3_0.eot');
+ src: url('webfonts/23242D_3_0.eot?#iefix') format('embedded-opentype'),
+ url('webfonts/23242D_3_0.woff') format('woff'),
+ url('webfonts/23242D_3_0.ttf') format('truetype');
+}
/* reset */
* {
background:#fff;
}
h1 a, h1 a:visited {
- font-family:gubblefont, GubbleBum Blocky, GubbleBum, monospace;
+ font-family:gubblefont, Gubblebum-Blocky, GubbleBum Blocky, GubbleBum, monospace;
font-size:60px;
color:#900;
display:block;
display:block;
}
-@font-face {
- font-family:gubblefont;
- src: url(./GubbleBum-Blocky.ttf) format("truetype");
-}
-
@media print {
a[href] {
color:inherit;
display:none;
}
}
-
}
function open (url, cb) {
- exec(npm.config.get("browser"), [url], log.er(cb,
- "Failed to open "+url+" in a browser. It could be that the\n"+
- "'browser' config is not set. Try doing this:\n"+
- " npm config set browser google-chrome\n"+
- "or:\n"+
- " npm config set browser lynx\n"))
+ var args = [url]
+ , browser = npm.config.get("browser")
+
+ if (process.platform === "win32" && browser === "start") {
+ args = [ "/c", "start" ].concat(args)
+ browser = "cmd"
+ }
+
+ if (!browser) {
+ var er = ["the 'browser' config is not set. Try doing this:"
+ ," npm config set browser google-chrome"
+ ,"or:"
+ ," npm config set browser lynx"].join("\n")
+ return cb(er)
+ }
+
+ exec(browser, args, process.env, false, function () {})
+ cb()
}
// figure out what we should check out.
var co = parsed.hash && parsed.hash.substr(1) || "master"
+ // git is so tricky!
+ // if the path is like ssh://foo:22/some/path then it works, but
+ // it needs the ssh://
+ // If the path is like ssh://foo:some/path then it works, but
+ // only if you remove the ssh://
u = u.replace(/^git\+/, "")
.replace(/#.*$/, "")
- .replace(/^ssh:\/\//, "") // ssh is the default anyway
+
+ // ssh paths that are scp-style urls don't need the ssh://
+ if (parsed.pathname.match(/^\/?:/)) {
+ u = u.replace(/^ssh:\/\//, "")
+ }
+
log.verbose([u, co], "addRemoteGit")
var tmp = path.join(npm.tmp, Date.now()+"-"+Math.random())
}
function open (url, cb) {
- exec(npm.config.get("browser"), [url], log.er(cb,
- "Failed to open "+url+" in a browser. It could be that the\n"+
- "'browser' config is not set. Try doing this:\n"+
- " npm config set browser google-chrome\n"+
- "or:\n"+
- " npm config set browser lynx\n"))
+ var args = [url]
+ , browser = npm.config.get("browser")
+
+ if (process.platform === "win32" && browser === "start") {
+ args = [ "/c", "start" ].concat(args)
+ browser = "cmd"
+ }
+
+ if (!browser) {
+ var er = ["the 'browser' config is not set. Try doing this:"
+ ," npm config set browser google-chrome"
+ ,"or:"
+ ," npm config set browser lynx"].join("\n")
+ return cb(er)
+ }
+
+ exec(browser, args, process.env, false, function () {})
+ cb()
}
function localLink (target, where, context, cb) {
log.verbose(target._id, "try to link")
- var jsonFile = path.resolve( npm.dir, target.name
+ var jsonFile = path.resolve( npm.globalDir, target.name
, "package.json" )
, parent = context.parent
put("/"+pkg+"/-rev/"+data._rev, data, function (er, data) {
if (er) return log.er(cb, "Failed to update package metadata")(er)
if (data.error) return cb(new Error(
- "Failed to update pacakge metadata: "+JSON.stringify(data)))
+ "Failed to update package metadata: "+JSON.stringify(data)))
cb(null, data)
})
})
// if it's a local folder, then run the prepublish there, first.
readJson(path.resolve(arg, "package.json"), function (er, data) {
// error is ok. could be publishing a url or tarball
+ // however, that means that we will not have automatically run
+ // the prepublish script, since that gets run when adding a folder
+ // to the cache.
if (er) return cacheAddPublish(arg, false, isRetry, cb)
- lifecycle(data, "prepublish", arg, function (er) {
- if (er) return cb(er)
- cacheAddPublish(arg, true, isRetry, cb)
- })
+
+ cacheAddPublish(arg, true, isRetry, cb)
})
}
, path = require("path")
, ini = require("./ini.js")
, wroteLogFile = false
+ , exitCode = 0
process.on("exit", function (code) {
// console.error("exit", code)
if (!ini.resolved) return
if (code) itWorked = false
- if (itWorked) log("ok")
+ if (itWorked) log.info("ok")
else {
if (!cbCalled) {
log.error("cb() never called!\n ")
}
log.win("not ok")
}
- itWorked = false // ready for next exit
+
+ var doExit = npm.config.get("_exit")
+ if (doExit) {
+ // actually exit.
+ if (exitCode === 0 && !itWorked) {
+ exitCode = 1
+ }
+ if (exitCode !== 0) process.exit(exitCode)
+ } else {
+ itWorked = false // ready for next exit
+ }
})
+function exit (code, noLog) {
+ exitCode = exitCode || code
+
+ var doExit = npm.config.get("_exit")
+ log.verbose([code, doExit], "exit")
+ if (log.level === log.LEVEL.silent) noLog = true
+
+ if (code && !noLog) writeLogFile(reallyExit)
+ else rm("npm-debug.log", function () { rm(npm.tmp, reallyExit) })
+
+ function reallyExit() {
+ itWorked = !code
+
+ // just emit a fake exit event.
+ // if we're really exiting, then let it exit on its own, so that
+ // in-process stuff can finish or clean up first.
+ if (!doExit) process.emit("exit", code)
+ }
+}
+
+
function errorHandler (er) {
// console.error("errorHandler", er)
if (!ini.resolved) {
exit(typeof er.errno === "number" ? er.errno : 1)
}
-function exit (code, noLog) {
- var doExit = npm.config.get("_exit")
- log.verbose([code, doExit], "exit")
- if (log.level === log.LEVEL.silent) noLog = true
-
- if (code && !noLog) writeLogFile(reallyExit)
- else rm("npm-debug.log", function () { rm(npm.tmp, reallyExit) })
-
- function reallyExit() {
- itWorked = !code
- //if (!itWorked) {
- if (!doExit) process.emit("exit", code)
- else process.exit(code)
- //}
- }
-}
-
var writingLogFile = false
function writeLogFile (cb) {
if (writingLogFile) return cb()
if (packageLifecycle) {
// define this here so it's available to all scripts.
env.npm_lifecycle_script = pkg.scripts[stage]
+ // if the command is "node-gyp <args>", then call ours instead.
+ try {
+ var ourGyp = require.resolve("node-gyp/bin/node-gyp.js")
+ } catch (er) {
+ return cb(new Error("No gyp installed with npm"))
+ }
+ var gyp = path.execPath + " " + JSON.stringify(ourGyp)
+ pkg.scripts[stage] = pkg.scripts[stage].replace(/^node-gyp( |$)/, gyp)
}
if (failOk) {
, zlib = require("zlib")
, fstream = require("fstream")
, Packer = require("fstream-npm")
+ , lifecycle = require("./lifecycle.js")
if (process.env.SUDO_UID && myUid === 0) {
if (!isNaN(process.env.SUDO_UID)) myUid = +process.env.SUDO_UID
function pack (targetTarball, folder, pkg, dfc, cb) {
log.verbose([targetTarball, folder], "tar.pack")
- if (typeof cb !== "function") cb = dfc, dfc = true
+ if (typeof cb !== "function") cb = dfc, dfc = false
log.verbose(targetTarball, "tarball")
log.verbose(folder, "folder")
+
+ if (dfc) {
+ // do fancy crap
+ return lifecycle(pkg, 'prepublish', folder, function (er) {
+ if (er) return cb(er)
+ pack_(targetTarball, folder, pkg, cb)
+ })
+ } else {
+ pack_(targetTarball, folder, pkg, cb)
+ }
+}
+
+function pack_ (targetTarball, folder, pkg, cb) {
new Packer({ path: folder, type: "Directory", isDirectory: true })
.on("error", log.er(cb, "error reading "+folder))
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "May 2012" "" ""
+.TH "NPM" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ADDUSER" "1" "May 2012" "" ""
+.TH "NPM\-ADDUSER" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-adduser\fR \-\- Add a registry user account
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "1" "May 2012" "" ""
+.TH "NPM\-BIN" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "1" "May 2012" "" ""
+.TH "NPM\-BUGS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUILD" "1" "May 2012" "" ""
+.TH "NPM\-BUILD" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-build\fR \-\- Build a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUNDLE" "1" "May 2012" "" ""
+.TH "NPM\-BUNDLE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-bundle\fR \-\- REMOVED
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CACHE" "1" "May 2012" "" ""
+.TH "NPM\-CACHE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-cache\fR \-\- Manipulates packages cache
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CHANGELOG" "1" "May 2012" "" ""
+.TH "NPM\-CHANGELOG" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-changelog\fR \-\- Changes
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CODING\-STYLE" "1" "May 2012" "" ""
+.TH "NPM\-CODING\-STYLE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-coding-style\fR \-\- npm\'s "funny" coding style
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMPLETION" "1" "May 2012" "" ""
+.TH "NPM\-COMPLETION" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-completion\fR \-\- Tab Completion for npm
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "1" "May 2012" "" ""
+.TH "NPM\-CONFIG" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration file
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "1" "May 2012" "" ""
+.TH "NPM\-DEPRECATE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEVELOPERS" "1" "May 2012" "" ""
+.TH "NPM\-DEVELOPERS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-developers\fR \-\- Developer Guide
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DISPUTES" "1" "May 2012" "" ""
+.TH "NPM\-DISPUTES" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-disputes\fR \-\- Handling Module Name Disputes
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "1" "May 2012" "" ""
+.TH "NPM\-DOCS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "1" "May 2012" "" ""
+.TH "NPM\-EDIT" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "1" "May 2012" "" ""
+.TH "NPM\-EXPLORE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FAQ" "1" "May 2012" "" ""
+.TH "NPM\-FAQ" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-faq\fR \-\- Frequently Asked Questions
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-FOLDERS" "1" "May 2012" "" ""
+.TH "NPM\-FOLDERS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-folders\fR \-\- Folder Structures Used by npm
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "1" "May 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search npm help documentation
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP" "1" "May 2012" "" ""
+.TH "NPM\-HELP" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-help\fR \-\- Get help on npm
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INDEX" "1" "May 2012" "" ""
+.TH "NPM\-INDEX" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-index\fR \-\- Index of all npm documentation
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INIT" "1" "May 2012" "" ""
+.TH "NPM\-INIT" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-init\fR \-\- Interactively create a package\.json file
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "1" "May 2012" "" ""
+.TH "NPM\-INSTALL" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- Install a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-JSON" "1" "May 2012" "" ""
+.TH "NPM\-JSON" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-json\fR \-\- Specifics of npm\'s package\.json handling
.nf
git://github\.com/user/project\.git#commit\-ish
git+ssh://user@hostname: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
.
.P
If this is spelled \fB"bundleDependencies"\fR, then that is also honorable\.
.
+.SH "optionalDependencies"
+If a dependency can be used, but you would like npm to proceed if it
+cannot be found or fails to install, then you may put it in the \fBoptionalDependencies\fR hash\. This is a map of package name to version
+or url, just like the \fBdependencies\fR hash\. The difference is that
+failure is tolerated\.
+.
+.P
+It is still your program\'s responsibility to handle the lack of the
+dependency\. For example, something like this:
+.
+.IP "" 4
+.
+.nf
+try {
+ var foo = require(\'foo\')
+ var fooVersion = require(\'foo/package\.json\')\.version
+} catch (er) {
+ foo = null
+}
+if ( notGoodFooVersion(fooVersion) ) {
+ foo = null
+}
+// \.\. then later in your program \.\.
+if (foo) {
+ foo\.doFooThings()
+}
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Entries in \fBoptionalDependencies\fR will override entries of the same name in \fBdependencies\fR, so it\'s usually best to only put in one place\.
+.
.SH "engines"
You can specify the version of
node that your stuff works on:
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "1" "May 2012" "" ""
+.TH "NPM\-LINK" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "1" "May 2012" "" ""
+.TH "NPM\-LS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "1" "May 2012" "" ""
+.TH "NPM" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
.fi
.
.SH "VERSION"
-1.1.21
+1.1.24
.
.SH "DESCRIPTION"
npm is the package manager for the Node JavaScript platform\. It puts
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "1" "May 2012" "" ""
+.TH "NPM\-OUTDATED" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "1" "May 2012" "" ""
+.TH "NPM\-OWNER" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "1" "May 2012" "" ""
+.TH "NPM\-PACK" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "1" "May 2012" "" ""
+.TH "NPM\-PREFIX" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "1" "May 2012" "" ""
+.TH "NPM\-PRUNE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "1" "May 2012" "" ""
+.TH "NPM\-PUBLISH" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "1" "May 2012" "" ""
+.TH "NPM\-REBUILD" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REGISTRY" "1" "May 2012" "" ""
+.TH "NPM\-REGISTRY" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-registry\fR \-\- The JavaScript Package Registry
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REMOVAL" "1" "May 2012" "" ""
+.TH "NPM\-REMOVAL" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-removal\fR \-\- Cleaning the Slate
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "1" "May 2012" "" ""
+.TH "NPM\-RESTART" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "1" "May 2012" "" ""
+.TH "NPM\-ROOT" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "1" "May 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SCRIPTS" "1" "May 2012" "" ""
+.TH "NPM\-SCRIPTS" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-scripts\fR \-\- How npm handles the "scripts" field
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "1" "May 2012" "" ""
+.TH "NPM\-SEARCH" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEMVER" "1" "May 2012" "" ""
+.TH "NPM\-SEMVER" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-semver\fR \-\- The semantic versioner for npm
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "1" "May 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- Lock down dependency versions
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STAR" "1" "May 2012" "" ""
+.TH "NPM\-STAR" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-star\fR \-\- Mark your favorite packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "1" "May 2012" "" ""
+.TH "NPM\-START" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "1" "May 2012" "" ""
+.TH "NPM\-STOP" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "1" "May 2012" "" ""
+.TH "NPM\-SUBMODULE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "1" "May 2012" "" ""
+.TH "NPM\-TAG" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "1" "May 2012" "" ""
+.TH "NPM\-TEST" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RM" "1" "May 2012" "" ""
+.TH "NPM\-RM" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-rm\fR \-\- Remove a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "1" "May 2012" "" ""
+.TH "NPM\-UNPUBLISH" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "1" "May 2012" "" ""
+.TH "NPM\-UPDATE" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "1" "May 2012" "" ""
+.TH "NPM\-VERSION" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "1" "May 2012" "" ""
+.TH "NPM\-VIEW" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "1" "May 2012" "" ""
+.TH "NPM\-WHOAMI" "1" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BIN" "3" "May 2012" "" ""
+.TH "NPM\-BIN" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-bin\fR \-\- Display npm bin folder
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-BUGS" "3" "May 2012" "" ""
+.TH "NPM\-BUGS" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-bugs\fR \-\- Bugs for a package in a web browser maybe
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-COMMANDS" "3" "May 2012" "" ""
+.TH "NPM\-COMMANDS" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-commands\fR \-\- npm commands
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-CONFIG" "3" "May 2012" "" ""
+.TH "NPM\-CONFIG" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration files
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DEPRECATE" "3" "May 2012" "" ""
+.TH "NPM\-DEPRECATE" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-deprecate\fR \-\- Deprecate a version of a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-DOCS" "3" "May 2012" "" ""
+.TH "NPM\-DOCS" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-docs\fR \-\- Docs for a package in a web browser maybe
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EDIT" "3" "May 2012" "" ""
+.TH "NPM\-EDIT" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-edit\fR \-\- Edit an installed package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-EXPLORE" "3" "May 2012" "" ""
+.TH "NPM\-EXPLORE" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-explore\fR \-\- Browse an installed package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-HELP\-SEARCH" "3" "May 2012" "" ""
+.TH "NPM\-HELP\-SEARCH" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-help-search\fR \-\- Search the help pages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "INIT" "3" "May 2012" "" ""
+.TH "INIT" "3" "June 2012" "" ""
.
.SH "NAME"
\fBinit\fR \-\- Interactively create a package\.json file
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-INSTALL" "3" "May 2012" "" ""
+.TH "NPM\-INSTALL" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-install\fR \-\- install a package programmatically
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LINK" "3" "May 2012" "" ""
+.TH "NPM\-LINK" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-link\fR \-\- Symlink a package folder
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LOAD" "3" "May 2012" "" ""
+.TH "NPM\-LOAD" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-load\fR \-\- Load config settings
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-LS" "3" "May 2012" "" ""
+.TH "NPM\-LS" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-ls\fR \-\- List installed packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM" "3" "May 2012" "" ""
+.TH "NPM" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
.fi
.
.SH "VERSION"
-1.1.21
+1.1.24
.
.SH "DESCRIPTION"
This is the API documentation for npm\.
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OUTDATED" "3" "May 2012" "" ""
+.TH "NPM\-OUTDATED" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-outdated\fR \-\- Check for outdated packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-OWNER" "3" "May 2012" "" ""
+.TH "NPM\-OWNER" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-owner\fR \-\- Manage package owners
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PACK" "3" "May 2012" "" ""
+.TH "NPM\-PACK" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-pack\fR \-\- Create a tarball from a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PREFIX" "3" "May 2012" "" ""
+.TH "NPM\-PREFIX" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-prefix\fR \-\- Display prefix
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PRUNE" "3" "May 2012" "" ""
+.TH "NPM\-PRUNE" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-prune\fR \-\- Remove extraneous packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-PUBLISH" "3" "May 2012" "" ""
+.TH "NPM\-PUBLISH" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-publish\fR \-\- Publish a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-REBUILD" "3" "May 2012" "" ""
+.TH "NPM\-REBUILD" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-rebuild\fR \-\- Rebuild a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RESTART" "3" "May 2012" "" ""
+.TH "NPM\-RESTART" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-restart\fR \-\- Start a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-ROOT" "3" "May 2012" "" ""
+.TH "NPM\-ROOT" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-root\fR \-\- Display npm root
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-RUN\-SCRIPT" "3" "May 2012" "" ""
+.TH "NPM\-RUN\-SCRIPT" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-run-script\fR \-\- Run arbitrary package scripts
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SEARCH" "3" "May 2012" "" ""
+.TH "NPM\-SEARCH" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-search\fR \-\- Search for packages
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SHRINKWRAP" "3" "May 2012" "" ""
+.TH "NPM\-SHRINKWRAP" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-shrinkwrap\fR \-\- programmatically generate package shrinkwrap file
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-START" "3" "May 2012" "" ""
+.TH "NPM\-START" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-start\fR \-\- Start a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-STOP" "3" "May 2012" "" ""
+.TH "NPM\-STOP" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-stop\fR \-\- Stop a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-SUBMODULE" "3" "May 2012" "" ""
+.TH "NPM\-SUBMODULE" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-submodule\fR \-\- Add a package as a git submodule
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TAG" "3" "May 2012" "" ""
+.TH "NPM\-TAG" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-tag\fR \-\- Tag a published version
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-TEST" "3" "May 2012" "" ""
+.TH "NPM\-TEST" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-test\fR \-\- Test a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNINSTALL" "3" "May 2012" "" ""
+.TH "NPM\-UNINSTALL" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-uninstall\fR \-\- uninstall a package programmatically
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UNPUBLISH" "3" "May 2012" "" ""
+.TH "NPM\-UNPUBLISH" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-unpublish\fR \-\- Remove a package from the registry
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-UPDATE" "3" "May 2012" "" ""
+.TH "NPM\-UPDATE" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-update\fR \-\- Update a package
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VERSION" "3" "May 2012" "" ""
+.TH "NPM\-VERSION" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-version\fR \-\- Bump a package version
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-VIEW" "3" "May 2012" "" ""
+.TH "NPM\-VIEW" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-view\fR \-\- View registry info
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
-.TH "NPM\-WHOAMI" "3" "May 2012" "" ""
+.TH "NPM\-WHOAMI" "3" "June 2012" "" ""
.
.SH "NAME"
\fBnpm-whoami\fR \-\- Display npm username
"scripts": {
"test": "tap test/*.js"
},
+ "license": "BSD",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
"node": "*"
},
"_engineSupported": true,
- "_npmVersion": "1.1.13",
- "_nodeVersion": "v0.7.7-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
- "_from": "chownr"
+ "dist": {
+ "shasum": "51d18189d9092d5f8afd623f3288bfd1c6bf1a62"
+ },
+ "_from": "../chownr"
}
this.bundleLinks = props.bundleLinks
this.package = props.package
+ // only do the magic bundling stuff for the node_modules folder that
+ // lives right next to a package.json file.
+ this.bundleMagic = this.parent &&
+ this.parent.packageRoot &&
+ this.basename === "node_modules"
+
// in a node_modules folder, resolve symbolic links to
// bundled dependencies when creating the package.
- props.follow = this.follow = this.basename === "node_modules"
+ props.follow = this.follow = this.bundleMagic
// console.error("follow?", this.path, props.follow)
if (this === this.root ||
this.parent &&
- this.parent.basename === "node_modules" &&
+ this.parent.bundleMagic &&
this.basename.charAt(0) !== ".") {
this.readBundledLinks()
}
if (entry === "package.json") return true
// special rules. see below.
- if (entry === "node_modules") return true
+ if (entry === "node_modules" && this.packageRoot) return true
// some files are *never* allowed under any circumstances
if (entry === ".git" ||
// To prevent infinite cycles in the case of cyclic deps that are
// linked with npm link, even in a bundle, deps are only bundled
// if they're not already present at a higher level.
- if (this.basename === "node_modules") {
+ if (this.bundleMagic) {
// bubbling up. stop here and allow anything the bundled pkg allows
if (entry.indexOf("/") !== -1) return true
"node": "*"
},
"_engineSupported": true,
- "_npmVersion": "1.1.16",
- "_nodeVersion": "v0.7.8-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"_from": "fstream-ignore@~0.0.5"
}
},
"name": "fstream-npm",
"description": "fstream class for creating npm packages",
- "version": "0.0.6",
+ "version": "0.1.0",
"repository": {
"type": "git",
"url": "git://github.com/isaacs/fstream-npm.git"
"fstream-ignore": "~0.0.5",
"inherits": ""
},
+ "license": "BSD",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_id": "fstream-npm@0.0.6",
+ "_id": "fstream-npm@0.1.0",
"devDependencies": {},
"optionalDependencies": {},
"engines": {
"node": "*"
},
"_engineSupported": true,
- "_npmVersion": "1.1.16",
- "_nodeVersion": "v0.7.8-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
- "_from": "fstream-npm@0 >=0.0.5"
+ "_from": "fstream-npm@0.1"
}
Like `mkdir -p`, but in node.js!
+[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp)
+
example
=======
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
+`cb(err, made)` fires with the error or the first directory `made`
+that had to be created, if any.
+
mkdirp.sync(dir, mode)
----------------------
If `mode` isn't specified, it defaults to `0777 & (~process.umask())`.
+Returns the first directory that had to be created, if any.
+
install
=======
module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP;
-function mkdirP (p, mode, f) {
+function mkdirP (p, mode, f, made) {
if (typeof mode === 'function' || mode === undefined) {
f = mode;
mode = 0777 & (~process.umask());
}
-
- // secret passalong argument.
- var made = arguments[3] || null;
+ if (!made) made = null;
var cb = f || function () {};
if (typeof mode === 'string') mode = parseInt(mode, 8);
});
break;
+ case 'EISDIR':
+ case 'EPERM':
+ // Operation not permitted or already is a dir.
+ // This is the error you get when trying to mkdir('c:/')
+ // on windows, or mkdir('/') on unix. Make sure it's a
+ // dir by falling through to the EEXIST case.
+ case 'EROFS':
+ // a read-only file system.
+ // However, the dir could already exist, in which case
+ // the EROFS error will be obscuring a EEXIST!
+ // Fallthrough to that case.
case 'EEXIST':
fs.stat(p, function (er2, stat) {
// if the stat fails, then that's super weird.
- // let the original EEXIST be the failure reason.
+ // let the original error be the failure reason.
if (er2 || !stat.isDirectory()) cb(er, made)
else cb(null, made);
});
});
}
-mkdirP.sync = function sync (p, mode) {
+mkdirP.sync = function sync (p, mode, made) {
if (mode === undefined) {
mode = 0777 & (~process.umask());
}
-
- // secret passalong argument
- var made = arguments[2] || null;
+ if (!made) made = null;
if (typeof mode === 'string') mode = parseInt(mode, 8);
p = path.resolve(p);
{
"name": "mkdirp",
"description": "Recursively mkdir, like `mkdir -p`",
- "version": "0.3.0",
+ "version": "0.3.2",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
"test": "tap test/*.js"
},
"devDependencies": {
- "tap": "0.2"
+ "tap": "~0.2.4"
},
"license": "MIT/X11",
"engines": {
"name": "isaacs",
"email": "i@izs.me"
},
- "_id": "mkdirp@0.3.0",
+ "_id": "mkdirp@0.3.2",
"dependencies": {},
"optionalDependencies": {},
"_engineSupported": true,
- "_npmVersion": "1.1.13",
- "_nodeVersion": "v0.7.7-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"dist": {
- "shasum": "a3cc6816e78b84f570caf9d95cb7368dc5d0bab8"
+ "shasum": "bebd1a16759571a6bd30f89a7edffc38ad442881"
},
"_from": "../mkdirp"
}
* On Windows:
* [Python][windows-python] ([`v2.7.2`][windows-python-v2.7.2] recommended, `v3.x.x` not yet supported)
* Microsoft Visual C++ ([Express][msvc] version works well)
+ * For 64-bit builds of node and native modules you will _also_ need the [Windows 7 64-bit SDK][win7sdk]
How to Use
----------
```
Now you have your compiled `.node` bindings file! The compiled bindings end up
-in `build/Debug/` or `buld/Release/`, depending on the build mode. At this point
+in `build/Debug/` or `build/Release/`, depending on the build mode. At this point
you can require the `.node` file with Node and run your tests!
__Note:__ To create a _Debug_ build of the bindings file, pass the `--debug` (or
[windows-python]: http://www.python.org/getit/windows
[windows-python-v2.7.2]: http://www.python.org/download/releases/2.7.2#download
[msvc]: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
+[win7sdk]: http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=8279
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
'component%': 'static_library', # NB. these names match with what V8 expects
'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
+
+ # Enable V8's post-mortem debugging only on unix flavors.
+ 'conditions': [
+ ['OS != "win"', {
+ 'v8_postmortem_support': 'true'
+ }]
+ ],
},
'target_defaults': {
'VCCLCompilerTool': {
'RuntimeLibrary': 1, # static debug
'Optimization': 0, # /Od, no optimization
- 'MinimalRebuild': 'true',
+ 'MinimalRebuild': 'false',
'OmitFramePointers': 'false',
'BasicRuntimeChecks': 3, # /RTC1
},
}],
['OS=="solaris"', {
'cflags': [ '-fno-omit-frame-pointer' ],
+ # pull in V8's postmortem metadata
+ 'ldflags': [ '-Wl,-z,allextract' ]
}],
['strict_aliasing!="true"', {
'cflags': [ '-fno-strict-aliasing' ],
'ldflags': [ '-m32' ],
}],
[ 'OS=="linux"', {
- 'cflags': [ '-ansi' ],
'ldflags': [ '-rdynamic' ],
}],
[ 'OS=="solaris"', {
],
}],
['OS=="mac"', {
+ 'defines': ['_DARWIN_USE_64_BIT_INODE=1'],
'xcode_settings': {
'ALWAYS_SEARCH_USER_PATHS': 'NO',
'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
'GCC_VERSION': '4.2',
'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
'PREBINDING': 'NO', # No -Wl,-prebind
- 'MACOSX_DEPLOYMENT_TARGET': '10.5',
+ 'MACOSX_DEPLOYMENT_TARGET': '10.5', # -mmacosx-version-min=10.5
'USE_HEADERMAP': 'NO',
'OTHER_CFLAGS': [
'-fno-strict-aliasing',
ifneq ($(d_files),)
# Rather than include each individual .d file, concatenate them into a
# single file which make is able to load faster. We split this into
- # commands that take 1000 files at a time to avoid overflowing the
+ # commands that take 512 files at a time to avoid overflowing the
# command line.
- $(shell cat $(wordlist 1,1000,$(d_files)) > $(depsdir)/all.deps)
+ $(shell cat $(wordlist 1,512,$(d_files)) > $(depsdir)/all.deps)
%(generate_all_deps)s
# make looks for ways to re-generate included makefiles, but in our case, we
# don't have a direct way. Explicitly telling make that it has nothing to do
if generator_flags.get('auto_regeneration', True):
WriteAutoRegenerationRule(params, root_makefile, makefile_name, build_files)
- # Write the rule to load dependencies. We batch 1000 files at a time to
+ # Write the rule to load dependencies. We batch 512 files at a time to
# avoid overflowing the command line.
all_deps = ""
- for i in range(1001, num_outputs, 1000):
+ for i in range(513, num_outputs, 512):
all_deps += ("""
ifneq ($(word %(start)d,$(d_files)),)
$(shell cat $(wordlist %(start)d,%(end)d,$(d_files)) >> $(depsdir)/all.deps)
ifneq ($(word %(last)d,$(d_files)),)
$(error Found unprocessed dependency files (gyp didn't generate enough rules!))
endif
-""" % { 'last': ((num_outputs / 1000) + 1) * 1000 + 1 }
+""" % { 'last': ((num_outputs / 512) + 1) * 512 + 1 }
root_makefile.write(SHARED_FOOTER % { 'generate_all_deps': all_deps })
, which = require('which')
, mkdirp = require('./util/mkdirp')
, win = process.platform == 'win32'
+ , openbsd = process.platform == 'openbsd'
exports.usage = 'Invokes `' + (win ? 'msbuild' : 'make') + '` and builds the module'
function build (gyp, argv, callback) {
gyp.verbose('build args', argv)
- var command = win ? 'msbuild' : 'make'
+ var makeCommand = openbsd ? 'gmake' : 'make'
+ var command = win ? 'msbuild' : makeCommand
, buildDir = path.resolve('build')
, configPath = path.resolve(buildDir, 'config.gypi')
, buildType
, config
, arch
- , version
+ , nodeDir
+ , copyDevLib
loadConfigGypi()
}
config = JSON.parse(data.replace(/\#.+\n/, ''))
- // get the 'arch', 'buildType', and 'version' vars from the config
+ // get the 'arch', 'buildType', and 'nodeDir' vars from the config
buildType = config.target_defaults.default_configuration
arch = config.variables.target_arch
- version = config.variables.target_version
+ nodeDir = config.variables.nodedir
+ copyDevLib = config.variables.copy_dev_lib == 'true'
if ('debug' in gyp.opts) {
buildType = gyp.opts.debug ? 'Debug' : 'Release'
gyp.verbose('build type:', buildType)
gyp.verbose('architecture:', arch)
- gyp.verbose('node version:', version)
+ gyp.verbose('node dev dir:', nodeDir)
if (win) {
findSolutionFile()
*/
function copyNodeLib () {
- if (!win) return doBuild()
+ if (!win || !copyDevLib) return doBuild()
- var devDir = path.resolve(gyp.devDir, version)
- , buildDir = path.resolve(devDir, buildType)
- , archNodeLibPath = path.resolve(devDir, arch, 'node.lib')
+ var buildDir = path.resolve(nodeDir, buildType)
+ , archNodeLibPath = path.resolve(nodeDir, arch, 'node.lib')
, buildNodeLibPath = path.resolve(buildDir, 'node.lib')
mkdirp(buildDir, function (err, isNew) {
var python = process.env.PYTHON || gyp.opts.python || 'python'
, buildDir = path.resolve('build')
, configPath
- , versionStr
- , version
+ , nodeDir
checkPython()
// Make sure that Python is in the $PATH
function checkPython () {
+ gyp.verbose('checking for Python executable "' + python + '" in the PATH')
which(python, function (err, execPath) {
if (err) {
if (win) {
return
}
gyp.verbose('`which` succeeded for `' + python + '`', execPath)
- getTargetVersion()
+ // TODO: ensure compatible Python version
+ getNodeDir()
})
}
return
}
python = pythonPath
- getTargetVersion()
+ getNodeDir()
})
}
function failNoPython () {
- callback(new Error('Can\'t find Python, you can set the PYTHON env variable.'))
+ callback(new Error('Can\'t find Python executable "' + python
+ + '", you can set the PYTHON env variable.'))
}
- function getTargetVersion () {
+ function getNodeDir () {
// 'python' should be set by now
process.env.PYTHON = python
- if (gyp.opts.target) {
- // if --target was given, then ensure that version is installed
- versionStr = gyp.opts.target
- gyp.verbose('compiling against --target node version', versionStr)
+ if (gyp.opts.nodedir) {
+ // --nodedir was specified. use that for the dev files
+ nodeDir = gyp.opts.nodedir
+
+ // simple ~ homedir expansion based on https://github.com/joyent/node/issues/2857
+ if (win) {
+ nodeDir = nodeDir.replace(/^~/, process.env.USERPROFILE)
+ } else {
+ nodeDir = nodeDir.replace(/^~/, process.env.HOME)
+ }
+
+ gyp.verbose('compiling against specified --nodedir dev files', nodeDir)
+ createBuildDir()
+
} else {
- // if no --target was specified then use the current host node version
- versionStr = process.version
- gyp.verbose('no --target version specified, falling back to host node version', versionStr)
- }
- version = semver.parse(versionStr)
- if (!version) {
- return callback(new Error('Invalid version number: ' + versionStr))
+ // if no --nodedir specified, ensure node dependencies are installed
+ var version
+ var versionStr
+
+ if (gyp.opts.target) {
+ // if --target was given, then determine a target version to compile for
+ versionStr = gyp.opts.target
+ gyp.verbose('compiling against --target node version', versionStr)
+ } else {
+ // if no --target was specified then use the current host node version
+ versionStr = process.version
+ gyp.verbose('no --target version specified, falling back to host node version', versionStr)
+ }
+
+ // make sure we have a valid version
+ version = semver.parse(versionStr)
+ if (!version) {
+ return callback(new Error('Invalid version number: ' + versionStr))
+ }
+
+ // ensure that the target node version's dev files are installed
+ gyp.opts.ensure = true
+ gyp.commands.install([ versionStr ], function (err, version) {
+ if (err) return callback(err)
+ gyp.verbose('target node version installed:', version)
+ nodeDir = path.resolve(gyp.devDir, version)
+ createBuildDir()
+ })
}
- gyp.opts.ensure = true
- gyp.commands.install([ versionStr ], function (err, _version) {
- if (err) return callback(err)
- version = _version
- gyp.verbose('setting target version to:', version)
- createBuildDir()
- })
}
function createBuildDir () {
// set the target_arch variable
variables.target_arch = gyp.opts.arch || process.arch || 'ia32'
- // also set the target_version variable
- variables.target_version = version
+ // set the node development directory
+ variables.nodedir = nodeDir
+
+ // don't copy dev libraries with nodedir option
+ variables.copy_dev_lib = !gyp.opts.nodedir
// loop through the rest of the opts and add the unknown ones as variables.
// this allows for module-specific configure flags like:
function runGypAddon (err) {
if (err) return callback(err)
- // location of the `gyp_addon` python script for the target node version
- var gyp_addon = path.resolve(gyp.devDir, version, 'tools', 'gyp_addon')
+ // location of the `gyp_addon` python script for the target nodedir
+ var gyp_addon = path.resolve(nodeDir, 'tools', 'gyp_addon')
if (!~argv.indexOf('-f') && !~argv.indexOf('--format')) {
if (win) {
// enforce use of the "binding.gyp" file
argv.unshift('binding.gyp')
- // execute `gyp_addon` from the current target node version
+ // execute `gyp_addon` from the current target nodedir
argv.unshift(gyp_addon)
var cp = gyp.spawn(python, argv)
proto.configDefs = {
help: Boolean // everywhere
, arch: String // 'configure'
+ , debug: Boolean // 'build'
, directory: String // bin
, msvs_version: String // 'configure'
- , debug: Boolean // 'build'
, ensure: Boolean // 'install'
, verbose: Boolean // everywhere
, solution: String // 'build' (windows only)
, proxy: String // 'install'
+ , nodedir: String // 'configure'
}
/**
proto.shorthands = {
release: '--no-debug'
, C: '--directory'
+ , d: '--debug'
}
/**
}, this)
this.todo = commands
+
+ // support for inheriting config env variables from npm
+ var npm_config_prefix = 'npm_config_'
+ Object.keys(process.env).forEach(function (name) {
+ if (name.indexOf(npm_config_prefix) !== 0) return
+ var val = process.env[name]
+ if (name === npm_config_prefix + 'loglevel') {
+ // "loglevel" is a special case; check for "verbose"
+ if (val === 'verbose') {
+ this.opts.verbose = true
+ }
+ } else {
+ // take the config name and check if it's one that node-gyp cares about
+ name = name.substring(npm_config_prefix.length)
+ if (name in this.configDefs) {
+ this.opts[name] = val
+ }
+ }
+ }, this)
}
/**
"dependencies": {},
"optionalDependencies": {},
"_engineSupported": true,
- "_npmVersion": "1.1.16",
- "_nodeVersion": "v0.7.8-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"_from": "ansi@0.0.x"
}
"_id": "glob@3.1.9",
"optionalDependencies": {},
"_engineSupported": true,
- "_npmVersion": "1.1.16",
- "_nodeVersion": "v0.7.8-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"_from": "glob@3"
}
"bindings",
"gyp"
],
- "version": "0.4.1",
- "installVersion": 7,
+ "version": "0.4.5",
+ "installVersion": 8,
"author": {
"name": "Nathan Rajlich",
"email": "nathan@tootallnate.net",
"graceful-fs": "1",
"fstream": "~0.1.13",
"minimatch": "0.2.x",
- "mkdirp": "0.3.0",
+ "mkdirp": "0.3",
"nopt": "1",
"request": "2.9.x",
"rimraf": "2",
"name": "isaacs",
"email": "i@izs.me"
},
- "_id": "node-gyp@0.4.1",
+ "_id": "node-gyp@0.4.5",
"devDependencies": {},
"optionalDependencies": {},
"_engineSupported": true,
- "_npmVersion": "1.1.16",
- "_nodeVersion": "v0.7.8-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"dist": {
- "shasum": "05a017b115527b63fdec1321d0b5888bc5d7b04f"
+ "shasum": "9ddb9c4218322fd3d6b9771b27c236c4e5965e3b"
},
- "_from": "node-gyp@latest"
+ "_from": "node-gyp@~0.4.4"
}
-{ "name" : "semver"
-, "version" : "1.0.13"
-, "description" : "The semantic version parser used by npm."
-, "main" : "semver.js"
-, "scripts" : { "test" : "tap test.js" }
-, "devDependencies": { "tap" : "0.x >=0.0.4" }
-, "license" :
- { "type" : "MIT"
- , "url" : "https://github.com/isaacs/semver/raw/master/LICENSE" }
-, "repository" : "git://github.com/isaacs/node-semver.git"
-, "bin" : { "semver" : "./bin/semver" } }
+{
+ "name": "semver",
+ "version": "1.0.14",
+ "description": "The semantic version parser used by npm.",
+ "main": "semver.js",
+ "scripts": {
+ "test": "tap test.js"
+ },
+ "devDependencies": {
+ "tap": "0.x >=0.0.4"
+ },
+ "license": {
+ "type": "MIT",
+ "url": "https://github.com/isaacs/semver/raw/master/LICENSE"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/node-semver.git"
+ },
+ "bin": {
+ "semver": "./bin/semver"
+ },
+ "_npmUser": {
+ "name": "isaacs",
+ "email": "i@izs.me"
+ },
+ "_id": "semver@1.0.14",
+ "dependencies": {},
+ "optionalDependencies": {},
+ "engines": {
+ "node": "*"
+ },
+ "_engineSupported": true,
+ "_npmVersion": "1.1.22",
+ "_nodeVersion": "v0.7.9",
+ "_defaultsLoaded": true,
+ "_from": "semver@1"
+}
+ "(?:\\.([0-9]+|x|X|\\*)"
+ "(?:\\.([0-9]+|x|X|\\*)"
+ "([a-zA-Z-][a-zA-Z0-9-\.:]*)?)?)?"
- , xRange = "((?:<|>)?=?)?\\s*" + xRangePlain
+ , xRange = "((?:<|>)=?)?\\s*" + xRangePlain
, exprSpermy = "(?:~>?)"+xRange
, expressions = exports.expressions =
{ parse : new RegExp("^\\s*"+semver+"\\s*$")
"engines": {
"node": "*"
},
+ "license": "BSD",
"_npmUser": {
"name": "isaacs",
"email": "i@izs.me"
},
"_id": "uid-number@0.0.3",
"_engineSupported": true,
- "_npmVersion": "1.1.12",
- "_nodeVersion": "v0.7.7-pre",
+ "_npmVersion": "1.1.23",
+ "_nodeVersion": "v0.7.10-pre",
"_defaultsLoaded": true,
"dist": {
- "shasum": "be40aeab1db6ba45d2344d4ed6015109fc9d98d4"
+ "shasum": "cefb0fa138d8d8098da71a40a0d04a8327d6e1cc"
},
- "_from": "uid-number@0.0.3"
+ "_from": "../uid-number"
}
"install",
"package.json"
],
- "version": "1.1.21",
+ "version": "1.1.24",
"preferGlobal": true,
"config": {
"publishtest": false
"main": "./lib/npm.js",
"bin": "./bin/npm-cli.js",
"dependencies": {
- "semver": "1",
+ "semver": "~1.0.14",
"ini": "1",
"slide": "1",
"abbrev": "1",
"mkdirp": "0.3",
"read": "0",
"lru-cache": "1",
- "node-gyp": "~0.4.1",
- "fstream-npm": "0 >=0.0.5",
+ "node-gyp": "~0.4.5",
+ "fstream-npm": "0.1",
"uid-number": "0",
"archy": "0",
"chownr": "0"
--- /dev/null
+{"name":"npm-test-ignore-nested-nm"
+,"version":"1.2.5"
+,"scripts":{"test":"node test.js"}}
--- /dev/null
+fs = require('fs')
+fs.statSync(__dirname + '/lib/node_modules/foo')