@@ -23,7 +23,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Extraneous packages are packages that are not listed on the parent
package's dependencies list.</p>
</div>
<p id="footer">prune &mdash; npm@1.1.16</p>
<p id="footer">prune &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -32,7 +32,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">publish &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -22,7 +22,7 @@ <h2 id="CONFIGURATION">CONFIGURATION</h2>

<p>See <code>npm help build</code></p>
</div>
<p id="footer">rebuild &mdash; npm@1.1.16</p>
<p id="footer">rebuild &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -27,7 +27,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">restart &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>This function is not useful programmatically.</p>
</div>
<p id="footer">root &mdash; npm@1.1.16</p>
<p id="footer">root &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">run-script &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -32,7 +32,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
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 &mdash; npm@1.1.16</p>
<p id="footer">search &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>Finally, 'callback' is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
<p id="footer">shrinkwrap &mdash; npm@1.1.16</p>
<p id="footer">shrinkwrap &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">start &mdash; npm@1.1.16</p>
<p id="footer">start &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -19,7 +19,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run stop on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">stop &mdash; npm@1.1.16</p>
<p id="footer">stop &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li>npm help json</li><li>git help submodule</li></ul>
</div>
<p id="footer">submodule &mdash; npm@1.1.16</p>
<p id="footer">submodule &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
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 &mdash; npm@1.1.16</p>
<p id="footer">tag &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>npm can run tests on multiple packages. Just specify multiple packages
in the <code>packages</code> parameter.</p>
</div>
<p id="footer">test &mdash; npm@1.1.16</p>
<p id="footer">test &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -22,7 +22,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<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 &mdash; npm@1.1.16</p>
<p id="footer">uninstall &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -26,7 +26,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
<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 &mdash; npm@1.1.16</p>
<p id="footer">unpublish &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -18,7 +18,7 @@ <h1>DESCRIPTION</h1>

<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 &mdash; npm@1.1.16</p>
<p id="footer">update &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -24,7 +24,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
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 &mdash; npm@1.1.16</p>
<p id="footer">version &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -99,7 +99,7 @@ <h2 id="RETURN-VALUE">RETURN VALUE</h2>

<p>corresponding to the list of fields selected.</p>
</div>
<p id="footer">view &mdash; npm@1.1.16</p>
<p id="footer">view &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -21,7 +21,7 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>This function is not useful programmatically</p>
</div>
<p id="footer">whoami &mdash; npm@1.1.16</p>
<p id="footer">whoami &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -267,7 +267,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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> &mdash; npm@1.1.16</p>
<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -39,7 +39,7 @@ <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/owner.html">owner(1)</a></li><li><a href="../doc/whoami.html">whoami(1)</a></li></ul>
</div>
<p id="footer">adduser &mdash; npm@1.1.16</p>
<p id="footer">adduser &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">bin &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">bugs &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">build &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li><a href="../doc/install.html">install(1)</a></li></ul>
</div>
<p id="footer">bundle &mdash; npm@1.1.16</p>
<p id="footer">bundle &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -66,7 +66,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">cache &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -65,7 +65,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">changelog &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -191,7 +191,7 @@ <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/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">coding-style &mdash; npm@1.1.16</p>
<p id="footer">coding-style &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -33,7 +33,7 @@ <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/npm.html">npm(1)</a></li></ul>
</div>
<p id="footer">completion &mdash; npm@1.1.16</p>
<p id="footer">completion &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -105,7 +105,7 @@ <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>-q</code>, <code>--quiet</code>: <code>--loglevel warn</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>
<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>-q</code>, <code>--quiet</code>: <code>--loglevel warn</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>-D</code>: <code>--save-dev</code></li><li><code>-O</code>: <code>--save-optional</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
@@ -516,6 +516,22 @@ <h3 id="save">save</h3>

<p>Only works if there is already a package.json file present.</p>

<h3 id="save-dev">save-dev</h3>

<ul><li>Default: false</li><li>Type: Boolean</li></ul>

<p>Save installed packages to a package.json file as devDependencies.</p>

<p>Only works if there is already a package.json file present.</p>

<h3 id="save-optional">save-optional</h3>

<ul><li>Default: false</li><li>Type: Boolean</li></ul>

<p>Save installed packages to a package.json file as optionalDependencies.</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>
@@ -668,7 +684,7 @@ <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">config &mdash; npm@1.1.16</p>
<p id="footer">config &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <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></ul>
</div>
<p id="footer">deprecate &mdash; npm@1.1.16</p>
<p id="footer">deprecate &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -160,7 +160,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">developers &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -80,7 +80,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">disputes &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -37,7 +37,7 @@ <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">docs &mdash; npm@1.1.16</p>
<p id="footer">docs &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -37,7 +37,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">edit &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -40,7 +40,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">explore &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -241,7 +241,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">faq &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -205,7 +205,7 @@ <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">folders &mdash; npm@1.1.16</p>
<p id="footer">folders &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -38,7 +38,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">help-search &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -36,7 +36,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">help &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -384,7 +384,7 @@ <h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2>

<p> Display npm username</p>
</div>
<p id="footer">index &mdash; npm@1.1.16</p>
<p id="footer">index &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">init &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -14,9 +14,10 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>
npm install &lt;tarball file&gt;
npm install &lt;tarball url&gt;
npm install &lt;folder&gt;
npm install &lt;name&gt;
npm install &lt;name&gt; [--save|--save-dev|--save-optional]
npm install &lt;name&gt;@&lt;tag&gt;
npm install &lt;name&gt;@&lt;version&gt;
npm install &lt;name&gt;@&lt;version range&gt;
npm install &lt;name&gt;@&lt;version range&gt;</code></pre>

<h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -34,33 +35,29 @@ <h2 id="DESCRIPTION">DESCRIPTION</h2>
perhaps if you also want to be able to easily install it elsewhere
after packing it up into a tarball (b).</p>

<ul><li><p><code>npm install</code> (in package directory, no arguments):
Install the dependencies in the local node_modules folder.</p><p>In global mode (ie, with <code>-g</code> or <code>--global</code> appended to the command),
<ul><li><p><code>npm install</code> (in package directory, no arguments):</p><p>Install the dependencies in the local node_modules folder.</p><p>In global mode (ie, with <code>-g</code> or <code>--global</code> appended to the command),
it installs the current package context (ie, the current working
directory) as a global package.</p></li><li><p><code>npm install &lt;folder&gt;</code>:
Install a package that is sitting in a folder on the filesystem.</p></li><li><p><code>npm install &lt;tarball file&gt;</code>:
Install a package that is sitting on the filesystem. Note: if you just want
directory) as a global package.</p></li><li><p><code>npm install &lt;folder&gt;</code>:</p><p>Install a package that is sitting in a folder on the filesystem.</p></li><li><p><code>npm install &lt;tarball file&gt;</code>:</p><p>Install a package that is sitting on the filesystem. Note: if you just want
to link a dev directory into your npm root, you can do this more easily by
using <code>npm link</code>.</p><p>Example:</p><pre><code>npm install ./package.tgz</code></pre></li><li><p><code>npm install &lt;tarball url&gt;</code>:
Fetch the tarball url, and then install it. In order to distinguish between
this and other options, the argument must start with "http://" or "https://"</p><p>Example:</p><pre><code>npm install https://github.com/indexzero/forever/tarball/v0.5.6</code></pre></li><li><p><code>npm install &lt;name&gt;</code>:
Do a <code>&lt;name&gt;@&lt;tag&gt;</code> install, where <code>&lt;tag&gt;</code> is the "tag" config. (See
<code><a href="../doc/config.html">config(1)</a></code>)</p><p>Example:</p><pre><code>npm install sax</code></pre><p><strong>Note</strong>: If there is a file or folder named <code>&lt;name&gt;</code> in the current
using <code>npm link</code>.</p><p>Example:</p><pre><code> npm install ./package.tgz</code></pre></li><li><p><code>npm install &lt;tarball url&gt;</code>:</p><p>Fetch the tarball url, and then install it. In order to distinguish between
this and other options, the argument must start with "http://" or "https://"</p><p>Example:</p><pre><code> npm install https://github.com/indexzero/forever/tarball/v0.5.6</code></pre></li><li><p><code>npm install &lt;name&gt; [--save|--save-dev|--save-optional]</code>:</p><p>Do a <code>&lt;name&gt;@&lt;tag&gt;</code> install, where <code>&lt;tag&gt;</code> is the "tag" config. (See
<code><a href="../doc/config.html">config(1)</a></code>.)</p><p>In most cases, this will install the latest version
of the module published on npm.</p><p>Example:</p><p> npm install sax</p><p><code>npm install</code> takes 3 exclusive, optional flags which save or update
the package version in your main package.json:</p><ul><li><p><code>--save</code>: Package will appear in your <code>dependencies</code>.</p></li><li><p><code>--save-dev</code>: Package will appear in your <code>devDependencies</code>.</p></li><li><p><code>--save-optional</code>: Package will appear in your <code>optionalDependencies</code>.</p><p>Examples:</p><p> npm install sax --save
npm install node-tap --save-dev
npm install dtrace-provider --save-optional</p><p><strong>Note</strong>: If there is a file or folder named <code>&lt;name&gt;</code> in the current
working directory, then it will try to install that, and only try to
fetch the package by name if it is not valid.</p></li><li><p><code>npm install &lt;name&gt;@&lt;tag&gt;</code>:
Install the version of the package that is referenced by the specified tag.
fetch the package by name if it is not valid.</p></li></ul></li><li><p><code>npm install &lt;name&gt;@&lt;tag&gt;</code>:</p><p>Install the version of the package that is referenced by the specified tag.
If the tag does not exist in the registry data for that package, then this
will fail.</p><p>Example:</p><pre><code>npm install sax@latest</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version&gt;</code>:
Install the specified version of the package. This will fail if the version
has not been published to the registry.</p><p>Example:</p><pre><code>npm install sax@0.1.1</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version range&gt;</code>:
Install a version of the package matching the specified version range. This
will fail.</p><p>Example:</p><pre><code> npm install sax@latest</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version&gt;</code>:</p><p>Install the specified version of the package. This will fail if the version
has not been published to the registry.</p><p>Example:</p><pre><code> npm install sax@0.1.1</code></pre></li><li><p><code>npm install &lt;name&gt;@&lt;version range&gt;</code>:</p><p>Install a version of the package matching the specified version range. This
will follow the same rules for resolving dependencies described in <code><a href="../doc/json.html">json(1)</a></code>.</p><p>Note that most version ranges must be put in quotes so that your shell will
treat it as a single argument.</p><p>Example:</p><pre><code>npm install sax@"&gt;=0.1.0 &lt;0.2.0"</code></pre></li><li><p><code>npm install &lt;git remote url&gt;</code>:</p><p>Install a package by cloning a git remote url. The format of the git
url is:</p><pre><code>&lt;protocol&gt;://[&lt;user&gt;@]&lt;hostname&gt;&lt;separator&gt;&lt;path&gt;[#&lt;commit-ish&gt;]</code></pre><p><code>&lt;protocol&gt;</code> is one of <code>git</code>, <code>git+ssh</code>, <code>git+http</code>, or
treat it as a single argument.</p><p>Example:</p><p> npm install sax@"&gt;=0.1.0 &lt;0.2.0"</p></li><li><p><code>npm install &lt;git remote url&gt;</code>:</p><p>Install a package by cloning a git remote url. The format of the git
url is:</p><p> &lt;protocol&gt;://[&lt;user&gt;@]&lt;hostname&gt;&lt;separator&gt;&lt;path&gt;[#&lt;commit-ish&gt;]</p><p><code>&lt;protocol&gt;</code> is one of <code>git</code>, <code>git+ssh</code>, <code>git+http</code>, or
<code>git+https</code>. If no <code>&lt;commit-ish&gt;</code> is specified, then <code>master</code> is
used.</p><p>Examples:</p><pre><code>git+ssh://git@github.com:isaacs/npm.git#v1.0.27
git+https://isaacs@github.com/isaacs/npm.git
git://github.com/isaacs/npm.git#v1.0.27</code></pre></li></ul>
used.</p><p>Examples:</p><pre><code> git+ssh://git@github.com:isaacs/npm.git#v1.0.27
git+https://isaacs@github.com/isaacs/npm.git
git://github.com/isaacs/npm.git#v1.0.27</code></pre></li></ul>

<p>You may combine multiple arguments, and even multiple types of arguments.
For example:</p>
@@ -136,7 +133,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">install &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -478,7 +478,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">json &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -58,7 +58,7 @@ <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">link &mdash; npm@1.1.16</p>
<p id="footer">link &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -58,7 +58,7 @@ <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">list &mdash; npm@1.1.16</p>
<p id="footer">list &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -14,7 +14,7 @@ <h2 id="SYNOPSIS">SYNOPSIS</h2>

<h2 id="VERSION">VERSION</h2>

<p>1.1.16</p>
<p>1.1.18</p>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

@@ -135,7 +135,7 @@ <h2 id="SEE-ALSO">SEE ALSO</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 &mdash; npm@1.1.16</p>
<p id="footer">npm &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -21,7 +21,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">outdated &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -34,7 +34,7 @@ <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><li><a href="../doc/disputes.html">disputes(1)</a></li></ul>
</div>
<p id="footer">owner &mdash; npm@1.1.16</p>
<p id="footer">owner &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">pack &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">prefix &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">prune &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -29,7 +29,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">publish &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -25,7 +25,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">rebuild &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -97,7 +97,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">registry &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -58,7 +58,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">removing-npm &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -24,7 +24,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">restart &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">root &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">run-script &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -177,7 +177,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">scripts &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -24,7 +24,7 @@ <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">search &mdash; npm@1.1.16</p>
<p id="footer">search &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -104,7 +104,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li><a href="../doc/json.html">json(1)</a></li></ul>
</div>
<p id="footer">semver &mdash; npm@1.1.16</p>
<p id="footer">semver &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -169,7 +169,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">shrinkwrap &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -26,7 +26,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">star &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">start &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">stop &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -33,7 +33,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li><a href="../doc/json.html">json(1)</a></li><li>git help submodule</li></ul>
</div>
<p id="footer">submodule &mdash; npm@1.1.16</p>
<p id="footer">submodule &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -21,7 +21,7 @@ <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/config.html">config(1)</a></li></ul>
</div>
<p id="footer">tag &mdash; npm@1.1.16</p>
<p id="footer">tag &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">test &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -22,7 +22,7 @@ <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">uninstall &mdash; npm@1.1.16</p>
<p id="footer">uninstall &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -34,7 +34,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">unpublish &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -23,7 +23,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">update &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -31,7 +31,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">version &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -88,7 +88,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">view &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -20,7 +20,7 @@ <h2 id="SEE-ALSO">SEE ALSO</h2>

<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 &mdash; npm@1.1.16</p>
<p id="footer">whoami &mdash; npm@1.1.18</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
@@ -59,18 +59,27 @@ <h1>npm</h1>
<p>npm is a package manager for <a href="http://nodejs.org/">node</a>. You can use it to install
and publish your node programs. It manages dependencies and does other cool stuff.</p>

<h2>One Line Install</h2>
<h2>Easy Zero Line Install</h2>

<code>curl http://npmjs.org/install.sh | sh</code>
<p><a href="http://nodejs.org/#download">Install Node.js</a> <br>
(npm comes with it.)</p>

<h2>More Than One Line Install</h2>
<p>Because a one-line install is one too many.</p>

<h2>Fancy Install</h2>

<ol>
<li><a href="https://github.com/isaacs/npm">Get the code.</a>
<li>Do what <a href="http://npmjs.org/doc/README.html">the README</a>
says to do.
</ol>

<p>There's a pretty thorough install script at
<a href="http://npmjs.org/install.sh">http://npmjs.org/install.sh</a></p>

<p>For maximum security, make sure to thorougly inspect every
program that you run on your computer!</p>

<h2>Other Cool Stuff</h2>

<ul>
@@ -211,7 +211,7 @@ function readDependencies (context, where, opts, cb) {
rv[key] = data[key]
})
rv.dependencies = {}
Object.keys(newwrap.dependencies).forEach(function (key) {
Object.keys(newwrap.dependencies || {}).forEach(function (key) {
var w = newwrap.dependencies[key]
rv.dependencies[key] = w.from || w.version
})
@@ -225,7 +225,10 @@ function readDependencies (context, where, opts, cb) {
// as dependencies to a package.json file.
// This is experimental.
function save (where, installed, tree, pretty, cb) {
if (!npm.config.get("save") || npm.config.get("global")) {
if (!npm.config.get("save") &&
!npm.config.get("save-dev") &&
!npm.config.get("save-optional") ||
npm.config.get("global")) {
return cb(null, installed, tree, pretty)
}

@@ -257,13 +260,18 @@ function save (where, installed, tree, pretty, cb) {
} catch (ex) {
er = ex
}
if (er) return cb(null, installed, tree, pretty)
if (er) {
return cb(null, installed, tree, pretty)

var deps = npm.config.get("dev") ? "devDependencies" : "dependencies"
deps = data[deps] = data[deps] || {}
}

var deps = npm.config.get("save-optional") ? "optionalDependencies"
: npm.config.get("save-dev") ? "devDependencies"
: "dependencies"

data[deps] = data[deps] || {}
Object.keys(things).forEach(function (t) {
deps[t] = things[t]
data[deps][t] = things[t]
})
data = JSON.stringify(data, null, 2) + "\n"
fs.writeFile(saveTarget, data, function (er) {
@@ -26,10 +26,27 @@ var EventEmitter = require("events").EventEmitter
, semver = require("semver")
, findPrefix = require("./utils/find-prefix.js")
, getUid = require("uid-number")
, mkdir = require("mkdirp")
, mkdirp = require("mkdirp")
, slide = require("slide")
, chain = slide.chain

// /usr/local is often a read-only fs, which is not
// well handled by node or mkdirp. Just double-check
// in the case of errors when making the prefix dirs.
function mkdir (p, cb) {
mkdirp(p, function (er, made) {
// it could be that we couldn't create it, because it
// already exists, and is on a read-only fs.
if (er) {
return fs.stat(p, function (er2, st) {
if (er2 || !st.isDirectory()) return cb(er)
return cb(null, made)
})
}
return cb(er, made)
})
}

npm.commands = {}
npm.ELIFECYCLE = {}
npm.E404 = {}
@@ -189,6 +189,8 @@ Object.defineProperty(exports, "defaults", {get: function () {
, registry : "http" + (httpsOk ? "s" : "") + "://registry.npmjs.org/"
, rollback : true
, save : false
, "save-dev" : false
, "save-optional" : false
, searchopts: ""
, searchexclude: null
, searchsort: "name"
@@ -269,6 +271,8 @@ exports.types =
, registry : [null, url]
, rollback : Boolean
, save : Boolean
, "save-dev" : Boolean
, "save-optional" : Boolean
, searchopts : String
, searchexclude: [null, String]
, searchsort: [ "name", "-name"
@@ -324,6 +328,8 @@ exports.shorthands =
, porcelain : ["--parseable"]
, g : ["--global"]
, S : ["--save"]
, D : ["--save-dev"]
, O : ["--save-optional"]
, y : ["--yes"]
, n : ["--no-yes"]
}
@@ -94,6 +94,7 @@ var npm = require("../npm.js")
, semver = require("semver")
, readJson = require("./read-json.js")
, log = require("./log.js")
, url = require("url")

module.exports = readInstalled

@@ -254,6 +255,8 @@ function findUnmet (obj) {
continue
}
if ( typeof deps[d] === "string"
// url deps presumed innocent.
&& !url.parse(deps[d]).protocol
&& !semver.satisfies(found.version, deps[d])) {
// the bad thing will happen
log.warn(obj.path + " requires "+d+"@'"+deps[d]
@@ -171,6 +171,12 @@ The following shorthands are parsed on the command\-line:
\fB\-S\fR: \fB\-\-save\fR
.
.IP "\(bu" 4
\fB\-D\fR: \fB\-\-save\-dev\fR
.
.IP "\(bu" 4
\fB\-O\fR: \fB\-\-save\-optional\fR
.
.IP "\(bu" 4
\fB\-y\fR: \fB\-\-yes\fR
.
.IP "\(bu" 4
@@ -1007,6 +1013,38 @@ Save installed packages to a package\.json file as dependencies\.
.P
Only works if there is already a package\.json file present\.
.
.SS "save\-dev"
.
.IP "\(bu" 4
Default: false
.
.IP "\(bu" 4
Type: Boolean
.
.IP "" 0
.
.P
Save installed packages to a package\.json file as devDependencies\.
.
.P
Only works if there is already a package\.json file present\.
.
.SS "save\-optional"
.
.IP "\(bu" 4
Default: false
.
.IP "\(bu" 4
Type: Boolean
.
.IP "" 0
.
.P
Save installed packages to a package\.json file as optionalDependencies\.
.
.P
Only works if there is already a package\.json file present\.
.
.SS "searchopts"
.
.IP "\(bu" 4
@@ -13,10 +13,11 @@ npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install <name>
npm install <name> [\-\-save|\-\-save\-dev|\-\-save\-optional]
npm install <name>@<tag>
npm install <name>@<version>
npm install <name>@<version range>
npm install <name>@<version range>
.
.fi
.
@@ -59,6 +60,8 @@ after packing it up into a tarball (b)\.
.
.IP "\(bu" 4
\fBnpm install\fR (in package directory, no arguments):
.
.IP
Install the dependencies in the local node_modules folder\.
.
.IP
@@ -68,10 +71,14 @@ directory) as a global package\.
.
.IP "\(bu" 4
\fBnpm install <folder>\fR:
.
.IP
Install a package that is sitting in a folder on the filesystem\.
.
.IP "\(bu" 4
\fBnpm install <tarball file>\fR:
.
.IP
Install a package that is sitting on the filesystem\. Note: if you just want
to link a dev directory into your npm root, you can do this more easily by
using \fBnpm link\fR\|\.
@@ -82,7 +89,7 @@ Example:
.IP "" 4
.
.nf
npm install \./package\.tgz
npm install \./package\.tgz
.
.fi
.
@@ -91,6 +98,8 @@ npm install \./package\.tgz
.
.IP "\(bu" 4
\fBnpm install <tarball url>\fR:
.
.IP
Fetch the tarball url, and then install it\. In order to distinguish between
this and other options, the argument must start with "http://" or "https://"
.
@@ -100,36 +109,62 @@ Example:
.IP "" 4
.
.nf
npm install https://github\.com/indexzero/forever/tarball/v0\.5\.6
npm install https://github\.com/indexzero/forever/tarball/v0\.5\.6
.
.fi
.
.IP "" 0

.
.IP "\(bu" 4
\fBnpm install <name>\fR:
Do a \fB<name>@<tag>\fR install, where \fB<tag>\fR is the "tag" config\. (See \fBnpm help config\fR)
\fBnpm install <name> [\-\-save|\-\-save\-dev|\-\-save\-optional]\fR:
.
.IP
Do a \fB<name>@<tag>\fR install, where \fB<tag>\fR is the "tag" config\. (See \fBnpm help config\fR\|\.)
.
.IP
In most cases, this will install the latest version
of the module published on npm\.
.
.IP
Example:
.
.IP "" 4
.IP
npm install sax
.
.nf
npm install sax
.IP
\fBnpm install\fR takes 3 exclusive, optional flags which save or update
the package version in your main package\.json:
.
.fi
.IP "\(bu" 4
\fB\-\-save\fR: Package will appear in your \fBdependencies\fR\|\.
.
.IP "" 0
.IP "\(bu" 4
\fB\-\-save\-dev\fR: Package will appear in your \fBdevDependencies\fR\|\.
.
.IP "\(bu" 4
\fB\-\-save\-optional\fR: Package will appear in your \fBoptionalDependencies\fR\|\.
.
.IP
Examples:
.
.IP
npm install sax \-\-save
npm install node\-tap \-\-save\-dev
npm install dtrace\-provider \-\-save\-optional
.
.IP
\fBNote\fR: If there is a file or folder named \fB<name>\fR in the current
working directory, then it will try to install that, and only try to
fetch the package by name if it is not valid\.
.
.IP "" 0

.
.IP "\(bu" 4
\fBnpm install <name>@<tag>\fR:
.
.IP
Install the version of the package that is referenced by the specified tag\.
If the tag does not exist in the registry data for that package, then this
will fail\.
@@ -140,7 +175,7 @@ Example:
.IP "" 4
.
.nf
npm install sax@latest
npm install sax@latest
.
.fi
.
@@ -149,6 +184,8 @@ npm install sax@latest
.
.IP "\(bu" 4
\fBnpm install <name>@<version>\fR:
.
.IP
Install the specified version of the package\. This will fail if the version
has not been published to the registry\.
.
@@ -158,7 +195,7 @@ Example:
.IP "" 4
.
.nf
npm install sax@0\.1\.1
npm install sax@0\.1\.1
.
.fi
.
@@ -167,6 +204,8 @@ npm install sax@0\.1\.1
.
.IP "\(bu" 4
\fBnpm install <name>@<version range>\fR:
.
.IP
Install a version of the package matching the specified version range\. This
will follow the same rules for resolving dependencies described in \fBnpm help json\fR\|\.
.
@@ -177,15 +216,8 @@ treat it as a single argument\.
.IP
Example:
.
.IP "" 4
.
.nf
npm install sax@">=0\.1\.0 <0\.2\.0"
.
.fi
.
.IP "" 0

.IP
npm install sax@">=0\.1\.0 <0\.2\.0"
.
.IP "\(bu" 4
\fBnpm install <git remote url>\fR:
@@ -194,14 +226,8 @@ npm install sax@">=0\.1\.0 <0\.2\.0"
Install a package by cloning a git remote url\. The format of the git
url is:
.
.IP "" 4
.
.nf
<protocol>://[<user>@]<hostname><separator><path>[#<commit\-ish>]
.
.fi
.
.IP "" 0
.IP
<protocol>://[<user>@]<hostname><separator><path>[#<commit\-ish>]
.
.IP
\fB<protocol>\fR is one of \fBgit\fR, \fBgit+ssh\fR, \fBgit+http\fR, or \fBgit+https\fR\|\. If no \fB<commit\-ish>\fR is specified, then \fBmaster\fR is
@@ -213,9 +239,9 @@ Examples:
.IP "" 4
.
.nf
git+ssh://git@github\.com:isaacs/npm\.git#v1\.0\.27
git+https://isaacs@github\.com/isaacs/npm\.git
git://github\.com/isaacs/npm\.git#v1\.0\.27
git+ssh://git@github\.com:isaacs/npm\.git#v1\.0\.27
git+https://isaacs@github\.com/isaacs/npm\.git
git://github\.com/isaacs/npm\.git#v1\.0\.27
.
.fi
.
@@ -14,7 +14,7 @@ npm <command> [args]
.fi
.
.SH "VERSION"
1.1.16
1.1.18
.
.SH "DESCRIPTION"
npm is the package manager for the Node JavaScript platform\. It puts
@@ -21,7 +21,7 @@ npm\.load(configObject, function (er, npm) {
.fi
.
.SH "VERSION"
1.1.16
1.1.18
.
.SH "DESCRIPTION"
This is the API documentation for npm\.

This file was deleted.

This file was deleted.

@@ -10,7 +10,7 @@
"install",
"package.json"
],
"version": "1.1.16",
"version": "1.1.18",
"preferGlobal": true,
"config": {
"publishtest": false
@@ -53,8 +53,8 @@
"mkdirp": "0.3",
"read": "0",
"lru-cache": "1",
"node-gyp": "~0.3.7",
"fstream-npm": "0 >=0.0.4",
"node-gyp": "~0.4.1",
"fstream-npm": "0 >=0.0.5",
"uid-number": "0",
"archy": "0",
"chownr": "0"
@@ -77,7 +77,6 @@
"block-stream",
"inherits",
"mkdirp",
"fast-list",
"read",
"lru-cache",
"node-gyp",