mirror of https://github.com/lukechilds/node.git
isaacs
13 years ago
218 changed files with 23739 additions and 15 deletions
@ -1,15 +0,0 @@ |
|||||
*.swp |
|
||||
test/bin |
|
||||
test/output.log |
|
||||
test/packages/*/node_modules |
|
||||
test/packages/npm-test-depends-on-spark/which-spark.log |
|
||||
test/packages/test-package/random-data.txt |
|
||||
test/root |
|
||||
node_modules/ronn |
|
||||
node_modules/.bin |
|
||||
npm-debug.log |
|
||||
html/api/*.html |
|
||||
html/doc/*.html |
|
||||
man/ |
|
||||
doc/*/index.md |
|
||||
./npmrc |
|
@ -0,0 +1,365 @@ |
|||||
|
npm-index(1) -- Index of all npm documentation |
||||
|
============================================== |
||||
|
|
||||
|
## npm-README(1) |
||||
|
|
||||
|
node package manager |
||||
|
|
||||
|
# Command Line Documentation |
||||
|
## npm-adduser(1) |
||||
|
|
||||
|
Add a registry user account |
||||
|
|
||||
|
## npm-bin(1) |
||||
|
|
||||
|
Display npm bin folder |
||||
|
|
||||
|
## npm-bugs(1) |
||||
|
|
||||
|
Bugs for a package in a web browser maybe |
||||
|
|
||||
|
## npm-build(1) |
||||
|
|
||||
|
Build a package |
||||
|
|
||||
|
## npm-bundle(1) |
||||
|
|
||||
|
REMOVED |
||||
|
|
||||
|
## npm-cache(1) |
||||
|
|
||||
|
Manipulates packages cache |
||||
|
|
||||
|
## npm-changelog(1) |
||||
|
|
||||
|
Changes |
||||
|
|
||||
|
## npm-coding-style(1) |
||||
|
|
||||
|
npm's "funny" coding style |
||||
|
|
||||
|
## npm-completion(1) |
||||
|
|
||||
|
Tab Completion for npm |
||||
|
|
||||
|
## npm-config(1) |
||||
|
|
||||
|
Manage the npm configuration file |
||||
|
|
||||
|
## npm-deprecate(1) |
||||
|
|
||||
|
Deprecate a version of a package |
||||
|
|
||||
|
## npm-developers(1) |
||||
|
|
||||
|
Developer Guide |
||||
|
|
||||
|
## npm-docs(1) |
||||
|
|
||||
|
Docs for a package in a web browser maybe |
||||
|
|
||||
|
## npm-edit(1) |
||||
|
|
||||
|
Edit an installed package |
||||
|
|
||||
|
## npm-explore(1) |
||||
|
|
||||
|
Browse an installed package |
||||
|
|
||||
|
## npm-faq(1) |
||||
|
|
||||
|
Frequently Asked Questions |
||||
|
|
||||
|
## npm-folders(1) |
||||
|
|
||||
|
Folder Structures Used by npm |
||||
|
|
||||
|
## npm-help-search(1) |
||||
|
|
||||
|
Search npm help documentation |
||||
|
|
||||
|
## npm-help(1) |
||||
|
|
||||
|
Get help on npm |
||||
|
|
||||
|
## npm-init(1) |
||||
|
|
||||
|
Interactively create a package.json file |
||||
|
|
||||
|
## npm-install(1) |
||||
|
|
||||
|
Install a package |
||||
|
|
||||
|
## npm-json(1) |
||||
|
|
||||
|
Specifics of npm's package.json handling |
||||
|
|
||||
|
## npm-link(1) |
||||
|
|
||||
|
Symlink a package folder |
||||
|
|
||||
|
## npm-list(1) |
||||
|
|
||||
|
List installed packages |
||||
|
|
||||
|
## npm-npm(1) |
||||
|
|
||||
|
node package manager |
||||
|
|
||||
|
## npm-outdated(1) |
||||
|
|
||||
|
Check for outdated packages |
||||
|
|
||||
|
## npm-owner(1) |
||||
|
|
||||
|
Manage package owners |
||||
|
|
||||
|
## npm-pack(1) |
||||
|
|
||||
|
Create a tarball from a package |
||||
|
|
||||
|
## npm-prefix(1) |
||||
|
|
||||
|
Display prefix |
||||
|
|
||||
|
## npm-prune(1) |
||||
|
|
||||
|
Remove extraneous packages |
||||
|
|
||||
|
## npm-publish(1) |
||||
|
|
||||
|
Publish a package |
||||
|
|
||||
|
## npm-rebuild(1) |
||||
|
|
||||
|
Rebuild a package |
||||
|
|
||||
|
## npm-registry(1) |
||||
|
|
||||
|
The JavaScript Package Registry |
||||
|
|
||||
|
## npm-removing-npm(1) |
||||
|
|
||||
|
Cleaning the Slate |
||||
|
|
||||
|
## npm-restart(1) |
||||
|
|
||||
|
Start a package |
||||
|
|
||||
|
## npm-root(1) |
||||
|
|
||||
|
Display npm root |
||||
|
|
||||
|
## npm-run-script(1) |
||||
|
|
||||
|
Run arbitrary package scripts |
||||
|
|
||||
|
## npm-scripts(1) |
||||
|
|
||||
|
How npm handles the "scripts" field |
||||
|
|
||||
|
## npm-search(1) |
||||
|
|
||||
|
Search for packages |
||||
|
|
||||
|
## npm-semver(1) |
||||
|
|
||||
|
The semantic versioner for npm |
||||
|
|
||||
|
## npm-star(1) |
||||
|
|
||||
|
Mark your favorite packages |
||||
|
|
||||
|
## npm-start(1) |
||||
|
|
||||
|
Start a package |
||||
|
|
||||
|
## npm-stop(1) |
||||
|
|
||||
|
Stop a package |
||||
|
|
||||
|
## npm-submodule(1) |
||||
|
|
||||
|
Add a package as a git submodule |
||||
|
|
||||
|
## npm-tag(1) |
||||
|
|
||||
|
Tag a published version |
||||
|
|
||||
|
## npm-test(1) |
||||
|
|
||||
|
Test a package |
||||
|
|
||||
|
## npm-uninstall(1) |
||||
|
|
||||
|
Remove a package |
||||
|
|
||||
|
## npm-unpublish(1) |
||||
|
|
||||
|
Remove a package from the registry |
||||
|
|
||||
|
## npm-update(1) |
||||
|
|
||||
|
Update a package |
||||
|
|
||||
|
## npm-version(1) |
||||
|
|
||||
|
Bump a package version |
||||
|
|
||||
|
## npm-view(1) |
||||
|
|
||||
|
View registry info |
||||
|
|
||||
|
## npm-whoami(1) |
||||
|
|
||||
|
Display npm username |
||||
|
|
||||
|
# API Documentation |
||||
|
## npm-bin(3) |
||||
|
|
||||
|
Display npm bin folder |
||||
|
|
||||
|
## npm-bugs(3) |
||||
|
|
||||
|
Bugs for a package in a web browser maybe |
||||
|
|
||||
|
## npm-commands(3) |
||||
|
|
||||
|
npm commands |
||||
|
|
||||
|
## npm-config(3) |
||||
|
|
||||
|
Manage the npm configuration files |
||||
|
|
||||
|
## npm-deprecate(3) |
||||
|
|
||||
|
Deprecate a version of a package |
||||
|
|
||||
|
## npm-docs(3) |
||||
|
|
||||
|
Docs for a package in a web browser maybe |
||||
|
|
||||
|
## npm-edit(3) |
||||
|
|
||||
|
Edit an installed package |
||||
|
|
||||
|
## npm-explore(3) |
||||
|
|
||||
|
Browse an installed package |
||||
|
|
||||
|
## npm-help-search(3) |
||||
|
|
||||
|
Search the help pages |
||||
|
|
||||
|
## npm-init(3) |
||||
|
|
||||
|
Interactively create a package.json file |
||||
|
|
||||
|
## npm-install(3) |
||||
|
|
||||
|
install a package programmatically |
||||
|
|
||||
|
## npm-link(3) |
||||
|
|
||||
|
Symlink a package folder |
||||
|
|
||||
|
## npm-load(3) |
||||
|
|
||||
|
Load config settings |
||||
|
|
||||
|
## npm-ls(3) |
||||
|
|
||||
|
List installed packages |
||||
|
|
||||
|
## npm-npm(3) |
||||
|
|
||||
|
node package manager |
||||
|
|
||||
|
## npm-outdated(3) |
||||
|
|
||||
|
Check for outdated packages |
||||
|
|
||||
|
## npm-owner(3) |
||||
|
|
||||
|
Manage package owners |
||||
|
|
||||
|
## npm-pack(3) |
||||
|
|
||||
|
Create a tarball from a package |
||||
|
|
||||
|
## npm-prefix(3) |
||||
|
|
||||
|
Display prefix |
||||
|
|
||||
|
## npm-prune(3) |
||||
|
|
||||
|
Remove extraneous packages |
||||
|
|
||||
|
## npm-publish(3) |
||||
|
|
||||
|
Publish a package |
||||
|
|
||||
|
## npm-rebuild(3) |
||||
|
|
||||
|
Rebuild a package |
||||
|
|
||||
|
## npm-restart(3) |
||||
|
|
||||
|
Start a package |
||||
|
|
||||
|
## npm-root(3) |
||||
|
|
||||
|
Display npm root |
||||
|
|
||||
|
## npm-run-script(3) |
||||
|
|
||||
|
Run arbitrary package scripts |
||||
|
|
||||
|
## npm-search(3) |
||||
|
|
||||
|
Search for packages |
||||
|
|
||||
|
## npm-start(3) |
||||
|
|
||||
|
Start a package |
||||
|
|
||||
|
## npm-stop(3) |
||||
|
|
||||
|
Stop a package |
||||
|
|
||||
|
## npm-submodule(3) |
||||
|
|
||||
|
Add a package as a git submodule |
||||
|
|
||||
|
## npm-tag(3) |
||||
|
|
||||
|
Tag a published version |
||||
|
|
||||
|
## npm-test(3) |
||||
|
|
||||
|
Test a package |
||||
|
|
||||
|
## npm-uninstall(3) |
||||
|
|
||||
|
uninstall a package programmatically |
||||
|
|
||||
|
## npm-unpublish(3) |
||||
|
|
||||
|
Remove a package from the registry |
||||
|
|
||||
|
## npm-update(3) |
||||
|
|
||||
|
Update a package |
||||
|
|
||||
|
## npm-version(3) |
||||
|
|
||||
|
Bump a package version |
||||
|
|
||||
|
## npm-view(3) |
||||
|
|
||||
|
View registry info |
||||
|
|
||||
|
## npm-whoami(3) |
||||
|
|
||||
|
Display npm username |
||||
|
|
@ -0,0 +1,69 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,54 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>bin</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/bin.html">bin</a></h1> <p>Display npm bin folder</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.bin(args, cb)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the folder where npm will install executables.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>bugs</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/bugs.html">bugs</a></h1> <p>Bugs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.bugs(package, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command tries to guess at the likely location of a package's |
||||
|
bug tracker 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">bugs — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,63 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>commands</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/commands.html">commands</a></h1> <p>npm commands</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands[<command>](args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>npm comes with a full set of commands, and each of the commands takes a |
||||
|
similar set of arguments.</p> |
||||
|
|
||||
|
<p>In general, all commands on the command object take an <strong>array</strong> of positional |
||||
|
argument <strong>strings</strong>. The last argument to any function is a callback. Some |
||||
|
commands are special and take other optional arguments.</p> |
||||
|
|
||||
|
<p>All commands have their own man page. See <code>man npm-<command></code> for command-line |
||||
|
usage, or <code>man 3 npm-<command></code> for programmatic usage.</p> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<ul><li><a href="../doc/index.html">index(1)</a></li></ul> |
||||
|
</div> |
||||
|
<p id="footer">commands — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,68 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>config</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">config — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,65 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>deprecate</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/deprecate.html">deprecate</a></h1> <p>Deprecate a version of a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.deprecate(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command will update the npm registry entry for a package, providing |
||||
|
a deprecation warning to all who attempt to install it.</p> |
||||
|
|
||||
|
<p>The 'args' parameter must have exactly two elements:</p> |
||||
|
|
||||
|
<ul><li><p><code>package[@version]</code></p><p>The <code>version</code> portion is optional, and may be either a range, or a |
||||
|
specific version, or a tag.</p></li><li><p><code>message</code></p><p>The warning message that will be printed whenever a user attempts to |
||||
|
install the package.</p></li></ul> |
||||
|
|
||||
|
<p>Note that you must be the package owner to deprecate something. See the |
||||
|
<code>owner</code> and <code>adduser</code> help topics.</p> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>docs</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">docs — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,65 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>edit</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/edit.html">edit</a></h1> <p>Edit an installed package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.edit(package, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Opens the package folder in the default editor (or whatever you've |
||||
|
configured as the npm <code>editor</code> config -- see <code>npm help config</code>.)</p> |
||||
|
|
||||
|
<p>After it has been edited, the package is rebuilt so as to pick up any |
||||
|
changes in compiled packages.</p> |
||||
|
|
||||
|
<p>For instance, you can do <code>npm install connect</code> to install connect |
||||
|
into your package, and then <code>npm.commands.edit(["connect"], callback)</code> |
||||
|
to make a few changes to your locally installed copy.</p> |
||||
|
|
||||
|
<p>The first parameter is a string array with a single element, the package |
||||
|
to open. The package can optionally have a version number attached.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,59 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>explore</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/explore.html">explore</a></h1> <p>Browse an installed package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.explore(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Spawn a subshell in the directory of the installed package specified.</p> |
||||
|
|
||||
|
<p>If a command is specified, then it is run in the subshell, which then |
||||
|
immediately terminates.</p> |
||||
|
|
||||
|
<p>Note that the package is <em>not</em> automatically rebuilt afterwards, so be |
||||
|
sure to use <code>npm rebuild <pkg></code> if you make any changes.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,88 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,68 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,67 @@ |
|||||
|
<!doctype 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"> |
||||
|
|
||||
|
<body> |
||||
|
<div id="wrapper"> |
||||
|
<h1><a href="../api/help-search.html">help-search</a></h1> <p>Search the help pages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.helpSearch(args, [silent,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command is rarely useful, but it exists in the rare case that it is.</p> |
||||
|
|
||||
|
<p>This command takes an array of search terms and returns the help pages that |
||||
|
match in order of best match.</p> |
||||
|
|
||||
|
<p>If there is only one match, then npm displays that help section. If there |
||||
|
are multiple results, the results are printed to the screen formatted and the |
||||
|
array of results is returned. Each result is an object with these properties:</p> |
||||
|
|
||||
|
<ul><li>hits: |
||||
|
A map of args to number of hits on that arg. For example, {"npm": 3}</li><li>found: |
||||
|
Total number of unique args that matched.</li><li>totalHits: |
||||
|
Total number of hits.</li><li>lines: |
||||
|
An array of all matching lines (and some adjacent lines).</li><li>file: |
||||
|
Name of the file that matched</li></ul> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,70 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>init</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>npm init(3)</h1> <p>Interactively create a package.json file</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.init(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This will ask you a bunch of questions, and then write a package.json for you.</p> |
||||
|
|
||||
|
<p>It attempts to make reasonable guesses about what you want things to be set to, |
||||
|
and then writes a package.json file with the options you've selected.</p> |
||||
|
|
||||
|
<p>If you already have a package.json file, it'll read that first, and default to |
||||
|
the options in there.</p> |
||||
|
|
||||
|
<p>It is strictly additive, so it does not delete options from your package.json |
||||
|
without a really good reason to do so.</p> |
||||
|
|
||||
|
<p>Since this function expects to be run on the command-line, it doesn't work very |
||||
|
well as a programmatically. The best option is to roll your own, and since |
||||
|
JavaScript makes it stupid simple to output formatted JSON, that is the |
||||
|
preferred method. If you're sure you want to handle command-line prompting, |
||||
|
then go ahead and use this programmatically.</p> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<p><a href="../doc/json.html">json(1)</a></p> |
||||
|
</div> |
||||
|
<p id="footer">init — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>install</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/install.html">install</a></h1> <p>install a package programmatically</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.install([where,] packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This acts much the same ways as installing on the command-line.</p> |
||||
|
|
||||
|
<p>The 'where' parameter is optional and only used internally, and it specifies |
||||
|
where the packages should be installed to.</p> |
||||
|
|
||||
|
<p>The 'packages' parameter is an array of strings. Each element in the array is |
||||
|
the name of a package to be installed.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,74 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>link</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">link — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,88 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,74 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,67 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>load</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/load.html">load</a></h1> <p>Load config settings</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.load(conf, cb)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>npm.load() must be called before any other function call. Both parameters are |
||||
|
optional, but the second is recommended.</p> |
||||
|
|
||||
|
<p>The first parameter is an object hash of command-line config params, and the |
||||
|
second parameter is a callback that will be called when npm is loaded and |
||||
|
ready to serve.</p> |
||||
|
|
||||
|
<p>The first parameter should follow a similar structure as the package.json |
||||
|
config object.</p> |
||||
|
|
||||
|
<p>For example, to emulate the --dev flag, pass an object that looks like this:</p> |
||||
|
|
||||
|
<pre><code>{ |
||||
|
"dev": true |
||||
|
}</code></pre> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,88 @@ |
|||||
|
<!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="../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">ls — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,126 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>npm</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/npm.html">npm</a></h1> <p>node package manager</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>var npm = require("npm") |
||||
|
npm.load(configObject, function (er, npm) { |
||||
|
// use the npm object, now that it's loaded. |
||||
|
|
||||
|
npm.config.set(key, val) |
||||
|
val = npm.config.get(key) |
||||
|
|
||||
|
console.log("prefix = %s", npm.prefix) |
||||
|
|
||||
|
npm.commands.install(["package"], cb) |
||||
|
})</code></pre> |
||||
|
|
||||
|
<h2 id="VERSION">VERSION</h2> |
||||
|
|
||||
|
<p>1.1.0-alpha-2</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This is the API documentation for npm. |
||||
|
To find documentation of the command line |
||||
|
client, see <code><a href="../doc/npm.html">npm(1)</a></code>.</p> |
||||
|
|
||||
|
<p>Prior to using npm's commands, |
||||
|
<code>npm.load()</code> must be called with an object hash of |
||||
|
top-level configs. In the npm command line client, |
||||
|
this set of configs is parsed from the command line options. Additional |
||||
|
configuration params are loaded from two configuration files. See |
||||
|
<code><a href="../doc/config.html">config(1)</a></code> for more information.</p> |
||||
|
|
||||
|
<p>After that, each of the functions are accessible in the |
||||
|
commands object: <code>npm.commands.<cmd></code>. See <code><a href="../doc/index.html">index(1)</a></code> for a list of |
||||
|
all possible commands.</p> |
||||
|
|
||||
|
<p>All commands on the command object take an <strong>array</strong> of positional argument |
||||
|
<strong>strings</strong>. The last argument to any function is a callback. Some |
||||
|
commands take other optional arguments.</p> |
||||
|
|
||||
|
<p>Configs cannot currently be set on a per function basis, as each call to |
||||
|
npm.config.set will change the value for <em>all</em> npm commands in that process.</p> |
||||
|
|
||||
|
<p>To find API documentation for a specific command, run the <code>npm apihelp</code> |
||||
|
command.</p> |
||||
|
|
||||
|
<h2 id="METHODS-AND-PROPERTIES">METHODS AND PROPERTIES</h2> |
||||
|
|
||||
|
<ul><li><p><code>npm.load(configs, cb)</code></p><p>Load the configuration params, and call the <code>cb</code> function once the |
||||
|
globalconfig and userconfig files have been loaded as well, or on |
||||
|
nextTick if they've already been loaded.</p></li><li><p><code>npm.config</code></p><p>An object for accessing npm configuration parameters.</p><ul><li><p><code>npm.config.get(key)</code></p></li><li><code>npm.config.set(key, val)</code></li><li><p><code>npm.config.del(key)</code></p></li></ul></li><li><p><code>npm.dir</code> or <code>npm.root</code></p><p>The <code>node_modules</code> directory where npm will operate.</p></li><li><p><code>npm.prefix</code></p><p>The prefix where npm is operating. (Most often the current working |
||||
|
directory.)</p></li><li><p><code>npm.cache</code></p><p>The place where npm keeps JSON and tarballs it fetches from the |
||||
|
registry (or uploads to the registry).</p></li><li><p><code>npm.tmp</code></p><p>npm's temporary working directory.</p></li><li><p><code>npm.deref</code></p><p>Get the "real" name for a command that has either an alias or |
||||
|
abbreviation.</p></li></ul> |
||||
|
|
||||
|
<h2 id="MAGIC">MAGIC</h2> |
||||
|
|
||||
|
<p>For each of the methods in the <code>npm.commands</code> hash, a method is added to |
||||
|
the npm object, which takes a set of positional string arguments rather |
||||
|
than an array and a callback.</p> |
||||
|
|
||||
|
<p>If the last argument is a callback, then it will use the supplied |
||||
|
callback. However, if no callback is provided, then it will print out |
||||
|
the error or results.</p> |
||||
|
|
||||
|
<p>For example, this would work in a node repl:</p> |
||||
|
|
||||
|
<pre><code>> npm = require("npm") |
||||
|
> npm.load() // wait a sec... |
||||
|
> npm.install("dnode", "express")</code></pre> |
||||
|
|
||||
|
<p>Note that that <em>won't</em> work in a node program, since the <code>install</code> |
||||
|
method will get called before the configuration load is completed.</p> |
||||
|
|
||||
|
<h2 id="ABBREVS">ABBREVS</h2> |
||||
|
|
||||
|
<p>In order to support <code>npm ins foo</code> instead of <code>npm install foo</code>, the |
||||
|
<code>npm.commands</code> object has a set of abbreviations as well as the full |
||||
|
method names. Use the <code>npm.deref</code> method to find the real name.</p> |
||||
|
|
||||
|
<p>For example:</p> |
||||
|
|
||||
|
<pre><code>var cmd = npm.deref("unp") // cmd === "unpublish"</code></pre> |
||||
|
</div> |
||||
|
<p id="footer">npm — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,54 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>outdated</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/outdated.html">outdated</a></h1> <p>Check for outdated packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.outdated([packages,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command will check the registry to see if the specified packages are |
||||
|
currently outdated.</p> |
||||
|
|
||||
|
<p>If the 'packages' parameter is left out, npm will check all packages.</p> |
||||
|
</div> |
||||
|
<p id="footer">outdated — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,69 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>owner</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">owner — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>pack</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/pack.html">pack</a></h1> <p>Create a tarball from a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.pack([packages,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>For anything that's installable (that is, a package folder, tarball, |
||||
|
tarball url, name@tag, name@version, or name), this command will fetch |
||||
|
it to the cache, and then copy the tarball to the current working |
||||
|
directory as <code><name>-<version>.tgz</code>, and then write the filenames out to |
||||
|
stdout.</p> |
||||
|
|
||||
|
<p>If the same package is specified multiple times, then the file will be |
||||
|
overwritten the second time.</p> |
||||
|
|
||||
|
<p>If no arguments are supplied, then npm packs the current package folder.</p> |
||||
|
</div> |
||||
|
<p id="footer">pack — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,56 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>prefix</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/prefix.html">prefix</a></h1> <p>Display prefix</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.prefix(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the prefix to standard out.</p> |
||||
|
|
||||
|
<p>'args' is never used and callback is never called with data. |
||||
|
'args' must be present or things will break.</p> |
||||
|
|
||||
|
<p>This function is not useful programmatically</p> |
||||
|
</div> |
||||
|
<p id="footer">prefix — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,58 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>prune</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/prune.html">prune</a></h1> <p>Remove extraneous packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.prune([packages,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command removes "extraneous" packages.</p> |
||||
|
|
||||
|
<p>The first parameter is optional, and it specifies packages to be removed.</p> |
||||
|
|
||||
|
<p>No packages are specified, then all packages will be checked.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,67 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>publish</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/publish.html">publish</a></h1> <p>Publish a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.publish([packages,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Publishes a package to the registry so that it can be installed by name. |
||||
|
Possible values in the 'packages' array are:</p> |
||||
|
|
||||
|
<ul><li><p><code><folder></code>: |
||||
|
A folder containing a package.json file</p></li><li><p><code><tarball></code>: |
||||
|
A url or file path to a gzipped tar archive containing a single folder |
||||
|
with a package.json file inside.</p></li></ul> |
||||
|
|
||||
|
<p>If the package array is empty, npm will try to publish something in the |
||||
|
current working directory.</p> |
||||
|
|
||||
|
<p>This command could fails if one of the packages specified already exists in |
||||
|
the registry. Overwrites when the "force" environment variable is set.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,57 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>rebuild</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/rebuild.html">rebuild</a></h1> <p>Rebuild a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.rebuild([packages,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command runs the <code>npm build</code> command on each of the matched packages. This is useful |
||||
|
when you install a new version of node, and must recompile all your C++ addons with |
||||
|
the new binary. If no 'packages' parameter is specify, every package will be rebuilt.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<p>See <code>npm help build</code></p> |
||||
|
</div> |
||||
|
<p id="footer">rebuild — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,62 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>restart</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/restart.html">restart</a></h1> <p>Start a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.restart(packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "restart" script, if one was provided. |
||||
|
Otherwise it runs package's "stop" script, if one was provided, and then |
||||
|
the "start" script.</p> |
||||
|
|
||||
|
<p>If no version is specified, then it restarts the "active" version.</p> |
||||
|
|
||||
|
<p>npm can run tests on multiple packages. Just specify multiple packages |
||||
|
in the <code>packages</code> parameter.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,57 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,56 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>root</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/root.html">root</a></h1> <p>Display npm root</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.root(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the effective <code>node_modules</code> folder to standard out.</p> |
||||
|
|
||||
|
<p>'args' is never used and callback is never called with data. |
||||
|
'args' must be present or things will break.</p> |
||||
|
|
||||
|
<p>This function is not useful programmatically.</p> |
||||
|
</div> |
||||
|
<p id="footer">root — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>run-script</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/run-script.html">run-script</a></h1> <p>Run arbitrary package scripts</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.run-script(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs an arbitrary command from a package's "scripts" object.</p> |
||||
|
|
||||
|
<p>It is used by the test, start, restart, and stop commands, but can be |
||||
|
called directly, as well.</p> |
||||
|
|
||||
|
<p>The 'args' parameter is an array of strings. Behavior depends on the number |
||||
|
of elements. If there is only one element, npm assumes that the element |
||||
|
represents a command to be run on the local repository. If there is more than |
||||
|
one element, then the first is assumed to be the package and the second is |
||||
|
assumed to be the command to run. All other elements are ignored.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,67 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>search</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/search.html">search</a></h1> <p>Search for packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.search(searchTerms, [silent,] [staleness,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Search the registry for packages matching the search terms. The available parameters are:</p> |
||||
|
|
||||
|
<ul><li>searchTerms: |
||||
|
Array of search terms. These terms are case-insensitive.</li><li>silent: |
||||
|
If true, npm will not log anything to the console.</li><li>staleness: |
||||
|
This is the threshold for stale packages. "Fresh" packages are not refreshed |
||||
|
from the registry. This value is measured in seconds.</li><li><p>callback: |
||||
|
Returns an object where each key is the name of a package, and the value |
||||
|
is information about that package along with a 'words' property, which is |
||||
|
a space-delimited string of all of the interesting words in that package. |
||||
|
The only properties included are those that are searched, which generally include:</p><ul><li>name</li><li>description</li><li>maintainers</li><li>url</li><li>keywords</li></ul></li></ul> |
||||
|
|
||||
|
<p>A search on the registry excludes any result that does not match all of the |
||||
|
search terms. It also removes any items from the results that contain an |
||||
|
excluded term (the "searchexclude" config). The search is case insensitive |
||||
|
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.0-alpha-2</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> |
@ -0,0 +1,68 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,54 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>start</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/start.html">start</a></h1> <p>Start a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.start(packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "start" script, if one was provided.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,54 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>stop</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/stop.html">stop</a></h1> <p>Stop a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.stop(packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "stop" script, if one was provided.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,68 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>submodule</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/submodule.html">submodule</a></h1> <p>Add a package as a git submodule</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.submodule(packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>For each package specified, npm will check if it has a git repository url |
||||
|
in its package.json description then add it as a git submodule at |
||||
|
<code>node_modules/<pkg name></code>.</p> |
||||
|
|
||||
|
<p>This is a convenience only. From then on, it's up to you to manage |
||||
|
updates by using the appropriate git commands. npm will stubbornly |
||||
|
refuse to update, modify, or remove anything with a <code>.git</code> subfolder |
||||
|
in it.</p> |
||||
|
|
||||
|
<p>This command also does not install missing dependencies, if the package |
||||
|
does not include them in its git repository. If <code>npm ls</code> reports that |
||||
|
things are missing, you can either install, link, or submodule them yourself, |
||||
|
or you can do <code>npm explore <pkgname> -- npm install</code> to install the |
||||
|
dependencies into the submodule folder.</p> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<ul><li>npm help json</li><li>git help submodule</li></ul> |
||||
|
</div> |
||||
|
<p id="footer">submodule — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>tag</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/tag.html">tag</a></h1> <p>Tag a published version</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.tag(package@version, tag, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Tags the specified version of the package with the specified tag, or the |
||||
|
<code>--tag</code> config if not specified.</p> |
||||
|
|
||||
|
<p>The 'package@version' is an array of strings, but only the first two elements are |
||||
|
currently used.</p> |
||||
|
|
||||
|
<p>The first element must be in the form package@version, where package |
||||
|
is the package name and version is the version number (much like installing a |
||||
|
specific version).</p> |
||||
|
|
||||
|
<p>The second element is the name of the tag to tag this version with. If this |
||||
|
parameter is missing or falsey (empty), the default froom the config will be |
||||
|
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.0-alpha-2</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> |
@ -0,0 +1,57 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>test</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/test.html">test</a></h1> <p>Test a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code> npm.commands.test(packages, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "test" script, if one was provided.</p> |
||||
|
|
||||
|
<p>To run tests as a condition of installation, set the <code>npat</code> config to |
||||
|
true.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,57 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>uninstall</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">uninstall — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,61 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>unpublish</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/unpublish.html">unpublish</a></h1> <p>Remove a package from the registry</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.unpublish(package, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This removes a package version from the registry, deleting its |
||||
|
entry and removing the tarball.</p> |
||||
|
|
||||
|
<p>The package parameter must be defined.</p> |
||||
|
|
||||
|
<p>Only the first element in the package parameter is used. If there is no first |
||||
|
element, then npm assumes that the package at the current working directory |
||||
|
is what is meant.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,53 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>update</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/update.html">update</a></h1> <p>Update a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.update(packages, callback)</code></pre> |
||||
|
|
||||
|
<h1>DESCRIPTION</h1> |
||||
|
|
||||
|
<p>Updates a package, upgrading it to the latest version. It also installs any missing packages.</p> |
||||
|
|
||||
|
<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.0-alpha-2</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> |
@ -0,0 +1,59 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>version</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/version.html">version</a></h1> <p>Bump a package version</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.version(newversion, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Run this in a package directory to bump the version and write the new |
||||
|
data back to the package.json file.</p> |
||||
|
|
||||
|
<p>If run in a git repo, it will also create a version commit and tag, and |
||||
|
fail if the repo is not clean.</p> |
||||
|
|
||||
|
<p>Like all other commands, this function takes a string array as its first |
||||
|
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.0-alpha-2</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> |
@ -0,0 +1,134 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>view</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/view.html">view</a></h1> <p>View registry info</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.view(args, [silent,] callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command shows data about a package and prints it to the stream |
||||
|
referenced by the <code>outfd</code> config, which defaults to stdout.</p> |
||||
|
|
||||
|
<p>The "args" parameter is an ordered list that closely resembles the command-line |
||||
|
usage. The elements should be ordered such that the first element is |
||||
|
the package and version (package@version). The version is optional. After that, |
||||
|
the rest of the parameters are fields with optional subfields ("field.subfield") |
||||
|
which can be used to get only the information desired from the registry.</p> |
||||
|
|
||||
|
<p>The callback will be passed all of the data returned by the query.</p> |
||||
|
|
||||
|
<p>For example, to get the package registry entry for the <code>connect</code> package, |
||||
|
you can do this:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["connect"], callback)</code></pre> |
||||
|
|
||||
|
<p>If no version is specified, "latest" is assumed.</p> |
||||
|
|
||||
|
<p>Field names can be specified after the package descriptor. |
||||
|
For example, to show the dependencies of the <code>ronn</code> package at version |
||||
|
0.3.5, you could do the following:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["ronn@0.3.5", "dependencies"], callback)</code></pre> |
||||
|
|
||||
|
<p>You can view child field by separating them with a period. |
||||
|
To view the git repository URL for the latest version of npm, you could |
||||
|
do this:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["npm", "repository.url"], callback)</code></pre> |
||||
|
|
||||
|
<p>For fields that are arrays, requesting a non-numeric field will return |
||||
|
all of the values from the objects in the list. For example, to get all |
||||
|
the contributor names for the "express" project, you can do this:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["express", "contributors.email"], callback)</code></pre> |
||||
|
|
||||
|
<p>You may also use numeric indices in square braces to specifically select |
||||
|
an item in an array field. To just get the email address of the first |
||||
|
contributor in the list, you can do this:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["express", "contributors[0].email"], callback)</code></pre> |
||||
|
|
||||
|
<p>Multiple fields may be specified, and will be printed one after another. |
||||
|
For exampls, to get all the contributor names and email addresses, you |
||||
|
can do this:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["express", "contributors.name", "contributors.email"], callback)</code></pre> |
||||
|
|
||||
|
<p>"Person" fields are shown as a string if they would be shown as an |
||||
|
object. So, for example, this will show the list of npm contributors in |
||||
|
the shortened string format. (See <code>npm help json</code> for more on this.)</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["npm", "contributors"], callback)</code></pre> |
||||
|
|
||||
|
<p>If a version range is provided, then data will be printed for every |
||||
|
matching version of the package. This will show which version of jsdom |
||||
|
was required by each matching version of yui3:</p> |
||||
|
|
||||
|
<pre><code>npm.commands.view(["yui3@'>0.5.4'", "dependencies.jsdom"], callback)</code></pre> |
||||
|
|
||||
|
<h2 id="OUTPUT">OUTPUT</h2> |
||||
|
|
||||
|
<p>If only a single string field for a single version is output, then it |
||||
|
will not be colorized or quoted, so as to enable piping the output to |
||||
|
another command.</p> |
||||
|
|
||||
|
<p>If the version range matches multiple versions, than each printed value |
||||
|
will be prefixed with the version it applies to.</p> |
||||
|
|
||||
|
<p>If multiple fields are requested, than each of them are prefixed with |
||||
|
the field name.</p> |
||||
|
|
||||
|
<p>Console output can be disabled by setting the 'silent' parameter to true.</p> |
||||
|
|
||||
|
<h2 id="RETURN-VALUE">RETURN VALUE</h2> |
||||
|
|
||||
|
<p>The data returned will be an object in this formation:</p> |
||||
|
|
||||
|
<pre><code>{ <version>: |
||||
|
{ <field>: <value> |
||||
|
, ... } |
||||
|
, ... }</code></pre> |
||||
|
|
||||
|
<p>corresponding to the list of fields selected.</p> |
||||
|
</div> |
||||
|
<p id="footer">view — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,56 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>whoami</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/whoami.html">whoami</a></h1> <p>Display npm username</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm.commands.whoami(args, callback)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the <code>username</code> config to standard output.</p> |
||||
|
|
||||
|
<p>'args' is never used and callback is never called with data. |
||||
|
'args' must be present or things will break.</p> |
||||
|
|
||||
|
<p>This function is not useful programmatically</p> |
||||
|
</div> |
||||
|
<p id="footer">whoami — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,311 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>README</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/npm.html">npm</a></h1> <p>node package manager</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<p>This is just enough info to get you up and running.</p> |
||||
|
|
||||
|
<p>Much more info available via <code>npm help</code> once it's installed.</p> |
||||
|
|
||||
|
<h2 id="IMPORTANT">IMPORTANT</h2> |
||||
|
|
||||
|
<p><strong>You need node v0.4 or higher to run this program.</strong></p> |
||||
|
|
||||
|
<p>To install an old <strong>and unsupported</strong> version of npm that works on node 0.3 |
||||
|
and prior, clone the git repo and dig through the old tags and branches.</p> |
||||
|
|
||||
|
<h2 id="Simple-Install-Unix-only-sorry">Simple Install (Unix only, sorry)</h2> |
||||
|
|
||||
|
<p>To install npm with one command, do this:</p> |
||||
|
|
||||
|
<pre><code>curl http://npmjs.org/install.sh | sh</code></pre> |
||||
|
|
||||
|
<p>To skip the npm 0.x cleanup, do this:</p> |
||||
|
|
||||
|
<pre><code>curl http://npmjs.org/install.sh | clean=no sh</code></pre> |
||||
|
|
||||
|
<p>To say "yes" to the 0.x cleanup, but skip the prompt:</p> |
||||
|
|
||||
|
<pre><code>curl http://npmjs.org/install.sh | clean=yes sh</code></pre> |
||||
|
|
||||
|
<p>If you get permission errors, see the section below, entitled |
||||
|
"Permission Errors on Installation".</p> |
||||
|
|
||||
|
<h2 id="Installing-on-Windows-Experimental">Installing on Windows -- Experimental</h2> |
||||
|
|
||||
|
<p>Yes, this sucks. A convenient one-liner is coming soon.</p> |
||||
|
|
||||
|
<h3 id="Step-1-Drop-the-node-exe-somewhere">Step 1: Drop the node.exe somewhere</h3> |
||||
|
|
||||
|
<p>You will probably need the latest version of node, <strong>at least</strong> version |
||||
|
<code>0.5.8</code> or higher. You can get it from |
||||
|
<a href="http://nodejs.org/dist/v0.5.8/node.exe">http://nodejs.org/dist/v0.5.8/node.exe</a>.</p> |
||||
|
|
||||
|
<h3 id="Step-2-optional-Update-the-PATH-environment-variable">Step 2 (optional): Update the %PATH% environment variable</h3> |
||||
|
|
||||
|
<p>Update your <code>%PATH%</code> environment variable in System Properties: |
||||
|
Advanced: Environment, so that it includes the <code>bin</code> folder you chose. |
||||
|
The entries are separated by semicolons.</p> |
||||
|
|
||||
|
<p>You <em>may</em> be able to do this from the command line using <code>set</code> and |
||||
|
<code>setx</code>. <code>cd</code> into the <code>bin</code> folder you created in step 1, and do this:</p> |
||||
|
|
||||
|
<pre><code>set path=%PATH%;%CD% |
||||
|
setx path "%PATH%"</code></pre> |
||||
|
|
||||
|
<p>This will have the added advantage that you'll be able to simply type |
||||
|
<code>npm</code> or <code>node</code> in any project folder to access those commands.</p> |
||||
|
|
||||
|
<p>If you decide not to update the PATH, and put the node.exe file in |
||||
|
<code>C:\node\node.exe</code>, then the npm executable will end up <code>C:\node\npm.cmd</code>, |
||||
|
and you'll have to type <code>C:\node\npm <command></code> to use it.</p> |
||||
|
|
||||
|
<h3 id="Step-3-Install-git">Step 3: Install git</h3> |
||||
|
|
||||
|
<p>If you don't already have git, |
||||
|
<a href="https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit">install it</a>.</p> |
||||
|
|
||||
|
<p>Run <code>git --version</code> to make sure that it's at least version 1.7.6.</p> |
||||
|
|
||||
|
<h3 id="Step-4-install-npm">Step 4: install npm</h3> |
||||
|
|
||||
|
<p>Lastly, <strong>after</strong> node.exe, git, and your %PATH% have <em>all</em> been set up |
||||
|
properly, install npm itself:</p> |
||||
|
|
||||
|
<pre><code>git config --system http.sslcainfo /bin/curl-ca-bundle.crt |
||||
|
git clone --recursive git://github.com/isaacs/npm.git |
||||
|
cd npm |
||||
|
node cli.js install npm -gf</code></pre> |
||||
|
|
||||
|
<h2 id="Permission-Errors-EACCES-or-EACCESS-on-Installation">Permission Errors (`EACCES` or `EACCESS`) on Installation</h2> |
||||
|
|
||||
|
<p>On Windows, you may need to run the command prompt in elevated |
||||
|
permission mode. (Right-click on cmd.exe, Run as Administrator.)</p> |
||||
|
|
||||
|
<p>On Unix, you may need to run as root, or use <code>sudo</code>.</p> |
||||
|
|
||||
|
<p><strong>Note</strong>: You would need to <code>sudo</code> the <code>sh</code>, <strong>not</strong> the <code>curl</code>. Fetching |
||||
|
stuff from the internet typically doesn't require elevated permissions. |
||||
|
Running it might.</p> |
||||
|
|
||||
|
<p>I highly recommend that you first download the file, and make sure that |
||||
|
it is what you expect, and <em>then</em> run it.</p> |
||||
|
|
||||
|
<pre><code>curl -O http://npmjs.org/install.sh |
||||
|
# inspect file.. |
||||
|
sudo sh install.sh</code></pre> |
||||
|
|
||||
|
<h2 id="Installing-on-Cygwin">Installing on Cygwin</h2> |
||||
|
|
||||
|
<p>No.</p> |
||||
|
|
||||
|
<h2 id="Dev-Install">Dev Install</h2> |
||||
|
|
||||
|
<p>To install the latest <strong>unstable</strong> development version from git:</p> |
||||
|
|
||||
|
<pre><code>git clone https://github.com/isaacs/npm.git |
||||
|
cd npm |
||||
|
git submodule update --init --recursive |
||||
|
sudo make install # (or: `node cli.js install -gf`)</code></pre> |
||||
|
|
||||
|
<p>If you're sitting in the code folder reading this document in your |
||||
|
terminal, then you've already got the code. Just do:</p> |
||||
|
|
||||
|
<pre><code>git submodule update --init --recursive |
||||
|
sudo make install</code></pre> |
||||
|
|
||||
|
<p>and npm will install itself.</p> |
||||
|
|
||||
|
<p>If you don't have make, and don't have curl or git, and ALL you have is |
||||
|
this code and node, you can probably do this:</p> |
||||
|
|
||||
|
<pre><code>git submodule update --init --recursive |
||||
|
sudo node ./cli.js install -g</code></pre> |
||||
|
|
||||
|
<p>Note that github tarballs <strong>do not contain submodules</strong>, so |
||||
|
those won't work. You'll have to also fetch the appropriate submodules |
||||
|
listed in the .gitmodules file.</p> |
||||
|
|
||||
|
<h2 id="Permissions-when-Using-npm-to-Install-Other-Stuff">Permissions when Using npm to Install Other Stuff</h2> |
||||
|
|
||||
|
<p><strong>tl;dr</strong></p> |
||||
|
|
||||
|
<ul><li>Use <code>sudo</code> for greater safety. Or don't, if you prefer not to.</li><li>npm will downgrade permissions if it's root before running any build |
||||
|
scripts that package authors specified.</li></ul> |
||||
|
|
||||
|
<h3 id="More-details">More details...</h3> |
||||
|
|
||||
|
<p>As of version 0.3, it is recommended to run npm as root. |
||||
|
This allows npm to change the user identifier to the <code>nobody</code> user prior |
||||
|
to running any package build or test commands.</p> |
||||
|
|
||||
|
<p>If you are not the root user, or if you are on a platform that does not |
||||
|
support uid switching, then npm will not attempt to change the userid.</p> |
||||
|
|
||||
|
<p>If you would like to ensure that npm <strong>always</strong> runs scripts as the |
||||
|
"nobody" user, and have it fail if it cannot downgrade permissions, then |
||||
|
set the following configuration param:</p> |
||||
|
|
||||
|
<pre><code>npm config set unsafe-perm false</code></pre> |
||||
|
|
||||
|
<p>This will prevent running in unsafe mode, even as non-root users.</p> |
||||
|
|
||||
|
<h2 id="Uninstalling">Uninstalling</h2> |
||||
|
|
||||
|
<p>So sad to see you go.</p> |
||||
|
|
||||
|
<pre><code>sudo npm uninstall npm -g</code></pre> |
||||
|
|
||||
|
<p>Or, if that fails,</p> |
||||
|
|
||||
|
<pre><code>sudo make uninstall</code></pre> |
||||
|
|
||||
|
<h2 id="More-Severe-Uninstalling">More Severe Uninstalling</h2> |
||||
|
|
||||
|
<p>Usually, the above instructions are sufficient. That will remove |
||||
|
npm, but leave behind anything you've installed.</p> |
||||
|
|
||||
|
<p>If you would like to remove all the packages that you have installed, |
||||
|
then you can use the <code>npm ls</code> command to find them, and then <code>npm rm</code> to |
||||
|
remove them.</p> |
||||
|
|
||||
|
<p>To remove cruft left behind by npm 0.x, you can use the included |
||||
|
<code>clean-old.sh</code> script file. You can run it conveniently like this:</p> |
||||
|
|
||||
|
<pre><code>npm explore npm -g -- sh scripts/clean-old.sh</code></pre> |
||||
|
|
||||
|
<p>npm uses two configuration files, one for per-user configs, and another |
||||
|
for global (every-user) configs. You can view them by doing:</p> |
||||
|
|
||||
|
<pre><code>npm config get userconfig # defaults to ~/.npmrc |
||||
|
npm config get globalconfig # defaults to /usr/local/etc/npmrc</code></pre> |
||||
|
|
||||
|
<p>Uninstalling npm does not remove configuration files by default. You |
||||
|
must remove them yourself manually if you want them gone. Note that |
||||
|
this means that future npm installs will not remember the settings that |
||||
|
you have chosen.</p> |
||||
|
|
||||
|
<h2 id="Using-npm-Programmatically">Using npm Programmatically</h2> |
||||
|
|
||||
|
<p>If you would like to use npm programmatically, you can do that. |
||||
|
It's not very well documented, but it <em>is</em> rather simple.</p> |
||||
|
|
||||
|
<pre><code>var npm = require("npm") |
||||
|
npm.load(myConfigObject, function (er) { |
||||
|
if (er) return handlError(er) |
||||
|
npm.commands.install(["some", "args"], function (er, data) { |
||||
|
if (er) return commandFailed(er) |
||||
|
// command succeeded, and data might have some info |
||||
|
}) |
||||
|
npm.on("log", function (message) { .... }) |
||||
|
})</code></pre> |
||||
|
|
||||
|
<p>The <code>load</code> function takes an object hash of the command-line configs. |
||||
|
The various <code>npm.commands.<cmd></code> functions take an <strong>array</strong> of |
||||
|
positional argument <strong>strings</strong>. The last argument to any |
||||
|
<code>npm.commands.<cmd></code> function is a callback. Some commands take other |
||||
|
optional arguments. Read the source.</p> |
||||
|
|
||||
|
<p>You cannot set configs individually for any single npm function at this |
||||
|
time. Since <code>npm</code> is a singleton, any call to <code>npm.config.set</code> will |
||||
|
change the value for <em>all</em> npm commands in that process.</p> |
||||
|
|
||||
|
<p>See <code>./bin/npm-cli.js</code> for an example of pulling config values off of the |
||||
|
command line arguments using nopt. You may also want to check out <code>npm |
||||
|
help config</code> to learn about all the options you can set there.</p> |
||||
|
|
||||
|
<h2 id="More-Docs">More Docs</h2> |
||||
|
|
||||
|
<p>Check out the <a href="http://npmjs.org/doc/">docs</a>, |
||||
|
especially the |
||||
|
<a href="http://npmjs.org/doc/faq.html">faq</a>.</p> |
||||
|
|
||||
|
<p>You can use the <code>npm help</code> command to read any of them.</p> |
||||
|
|
||||
|
<p>If you're a developer, and you want to use npm to publish your program, |
||||
|
you should |
||||
|
<a href="http://npmjs.org/doc/developers.html">read this</a></p> |
||||
|
|
||||
|
<h2 id="Legal-Stuff">Legal Stuff</h2> |
||||
|
|
||||
|
<p>"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All |
||||
|
rights not explicitly granted in the MIT license are reserved. See the |
||||
|
included LICENSE file for more details.</p> |
||||
|
|
||||
|
<p>"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not |
||||
|
officially part of the Node.js project, and is neither owned by nor |
||||
|
officially affiliated with Joyent, Inc.</p> |
||||
|
|
||||
|
<p>The packages in the npm registry are not part of npm itself, and are the |
||||
|
sole property of their respective maintainers. While every effort is |
||||
|
made to ensure accountability, there is absolutely no guarantee, |
||||
|
warrantee, or assertion made as to the quality, fitness for a specific |
||||
|
purpose, or lack of malice in any given npm package. Modules |
||||
|
published on the npm registry are not affiliated with or endorsed by |
||||
|
Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.</p> |
||||
|
|
||||
|
<p>If you have a complaint about a package in the npm registry, and cannot |
||||
|
resolve it with the package owner, please express your concerns to |
||||
|
Isaac Z. Schlueter at <a href="mailto:i@izs.me">i@izs.me</a>.</p> |
||||
|
|
||||
|
<h3 id="In-plain-english">In plain english</h3> |
||||
|
|
||||
|
<p>This is mine; not my employer's, not Node's, not Joyent's, not Ryan |
||||
|
Dahl's.</p> |
||||
|
|
||||
|
<p>If you publish something, it's yours, and you are solely accountable |
||||
|
for it. Not me, not Node, not Joyent, not Ryan Dahl.</p> |
||||
|
|
||||
|
<p>If other people publish something, it's theirs. Not mine, not Node's, |
||||
|
not Joyent's, not Ryan Dahl's.</p> |
||||
|
|
||||
|
<p>Yes, you can publish something evil. It will be removed promptly if |
||||
|
reported, and we'll lose respect for you. But there is no vetting |
||||
|
process for published modules.</p> |
||||
|
|
||||
|
<p>If this concerns you, inspect the source before using packages.</p> |
||||
|
|
||||
|
<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> — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,74 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>adduser</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/adduser.html">adduser</a></h1> <p>Add a registry user account</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm adduser</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Create or verify a user named <code><username></code> in the npm registry, and |
||||
|
save the credentials to the <code>.npmrc</code> file.</p> |
||||
|
|
||||
|
<p>The username, password, and email are read in from prompts.</p> |
||||
|
|
||||
|
<p>You may use this command to change your email address, but not username |
||||
|
or password.</p> |
||||
|
|
||||
|
<p>To reset your password, go to <a href="http://admin.npmjs.org/">http://admin.npmjs.org/</a></p> |
||||
|
|
||||
|
<p>You may use this command multiple times with the same user account to |
||||
|
authorize on a new machine.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<h3 id="registry">registry</h3> |
||||
|
|
||||
|
<p>Default: http://registry.npmjs.org/</p> |
||||
|
|
||||
|
<p>The base URL of the npm package registry.</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/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.0-alpha-2</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> |
@ -0,0 +1,69 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,55 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>bin</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/bin.html">bin</a></h1> <p>Display npm bin folder</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm bin</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the folder where npm will install executables.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,71 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>bugs</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/bugs.html">bugs</a></h1> <p>Bugs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm bugs <pkgname></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command tries to guess at the likely location of a package's |
||||
|
bug tracker 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 bugs</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/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.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>build</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/build.html">build</a></h1> <p>Build a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm build <package-folder></code></pre> |
||||
|
|
||||
|
<ul><li><code><package-folder></code>: |
||||
|
A folder containing a <code>package.json</code> file in its root.</li></ul> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This is the plumbing command called by <code>npm link</code> and <code>npm install</code>.</p> |
||||
|
|
||||
|
<p>It should generally not be called directly.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,55 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>bundle</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/bundle.html">bundle</a></h1> <p>REMOVED</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>The <code>npm bundle</code> command has been removed in 1.0, for the simple reason |
||||
|
that it is no longer necessary, as the default behavior is now to |
||||
|
install packages into the local space.</p> |
||||
|
|
||||
|
<p>Just use <code>npm install</code> now to do what <code>npm bundle</code> used to do.</p> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<ul><li><a href="../doc/install.html">install(1)</a></li></ul> |
||||
|
</div> |
||||
|
<p id="footer">bundle — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,101 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>cache</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/cache.html">cache</a></h1> <p>Manipulates packages cache</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm cache add <tarball file> |
||||
|
npm cache add <folder> |
||||
|
npm cache add <tarball url> |
||||
|
npm cache add <name>@<version> |
||||
|
|
||||
|
npm cache ls [<path>] |
||||
|
|
||||
|
npm cache clean [<path>]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Used to add, list, or clear the npm cache folder.</p> |
||||
|
|
||||
|
<ul><li><p>add: |
||||
|
Add the specified package to the local cache. This command is primarily |
||||
|
intended to be used internally by npm, but it can provide a way to |
||||
|
add data to the local installation cache explicitly.</p></li><li><p>ls: |
||||
|
Show the data in the cache. Argument is a path to show in the cache |
||||
|
folder. Works a bit like the <code>find</code> program, but limited by the |
||||
|
<code>depth</code> config.</p></li><li><p>clean: |
||||
|
Delete data out of the cache folder. If an argument is provided, then |
||||
|
it specifies a subpath to delete. If no argument is provided, then |
||||
|
the entire cache is cleared.</p></li></ul> |
||||
|
|
||||
|
<h2 id="DETAILS">DETAILS</h2> |
||||
|
|
||||
|
<p>npm stores cache data in <code>$HOME/.npm</code>. For each package that is added |
||||
|
to the cache, three pieces of information are stored in |
||||
|
<code>{cache}/{name}/{version}</code>:</p> |
||||
|
|
||||
|
<ul><li>.../package/: |
||||
|
A folder containing the package contents as they appear in the tarball.</li><li>.../package.json: |
||||
|
The package.json file, as npm sees it, with overlays applied and a _id attribute.</li><li>.../package.tgz: |
||||
|
The tarball for that version.</li></ul> |
||||
|
|
||||
|
<p>Additionally, whenever a registry request is made, a <code>.cache.json</code> file |
||||
|
is placed at the corresponding URI, to store the ETag and the requested |
||||
|
data.</p> |
||||
|
|
||||
|
<p>Commands that make non-essential registry requests (such as <code>search</code> and |
||||
|
<code>view</code>, or the completion scripts) generally specify a minimum timeout. |
||||
|
If the <code>.cache.json</code> file is younger than the specified timeout, then |
||||
|
they do not make an HTTP request to the registry.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<h3 id="cache">cache</h3> |
||||
|
|
||||
|
<p>Default: <code>$HOME/.npm</code> on Posix, or <code>$HOME/npm-cache</code> on Windows.</p> |
||||
|
|
||||
|
<p>The root cache folder.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,69 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>changelog</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/changelog.html">changelog</a></h1> <p>Changes</p> |
||||
|
|
||||
|
<h2 id="HISTORY">HISTORY</h2> |
||||
|
|
||||
|
<h3 id="1-0">1.0</h3> |
||||
|
|
||||
|
<ul><li>Greatly simplified folder structure </li><li>Install locally (bundle by default) </li><li>Drastic rearchitecture</li></ul> |
||||
|
|
||||
|
<h3 id="0-3">0.3</h3> |
||||
|
|
||||
|
<ul><li>More correct permission/uid handling when running as root </li><li>Require node 0.4.0 </li><li>Reduce featureset </li><li>Packages without "main" modules don't export modules</li><li>Remove support for invalid JSON (since node doesn't support it)</li></ul> |
||||
|
|
||||
|
<h3 id="0-2">0.2</h3> |
||||
|
|
||||
|
<ul><li>First allegedly "stable" release</li><li>Most functionality implemented </li><li>Used shim files and <code>name@version</code> symlinks</li><li>Feature explosion</li><li>Kind of a mess</li></ul> |
||||
|
|
||||
|
<h3 id="0-1">0.1</h3> |
||||
|
|
||||
|
<ul><li>push to beta, and announce </li><li>Solaris and Cygwin support</li></ul> |
||||
|
|
||||
|
<h3 id="0-0">0.0</h3> |
||||
|
|
||||
|
<ul><li>Lots of sketches and false starts; abandoned a few times</li><li>Core functionality established</li></ul> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,226 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>coding-style</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/coding-style.html">coding-style</a></h1> <p>npm's "funny" coding style</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>npm's coding style is a bit unconventional. It is not different for |
||||
|
difference's sake, but rather a carefully crafted style that is |
||||
|
designed to reduce visual clutter and make bugs more apparent.</p> |
||||
|
|
||||
|
<p>If you want to contribute to npm (which is very encouraged), you should |
||||
|
make your code conform to npm's style.</p> |
||||
|
|
||||
|
<h2 id="Line-Length">Line Length</h2> |
||||
|
|
||||
|
<p>Keep lines shorter than 80 characters. It's better for lines to be |
||||
|
too short than to be too long. Break up long lists, objects, and other |
||||
|
statements onto multiple lines.</p> |
||||
|
|
||||
|
<h2 id="Indentation">Indentation</h2> |
||||
|
|
||||
|
<p>Two-spaces. Tabs are better, but they look like hell in web browsers |
||||
|
(and on github), and node uses 2 spaces, so that's that.</p> |
||||
|
|
||||
|
<p>Configure your editor appropriately.</p> |
||||
|
|
||||
|
<h2 id="Curly-braces">Curly braces</h2> |
||||
|
|
||||
|
<p>Curly braces belong on the same line as the thing that necessitates them.</p> |
||||
|
|
||||
|
<p>Bad:</p> |
||||
|
|
||||
|
<pre><code>function () |
||||
|
{</code></pre> |
||||
|
|
||||
|
<p>Good:</p> |
||||
|
|
||||
|
<pre><code>function () {</code></pre> |
||||
|
|
||||
|
<p>If a block needs to wrap to the next line, use a curly brace. Don't |
||||
|
use it if it doesn't.</p> |
||||
|
|
||||
|
<p>Bad:</p> |
||||
|
|
||||
|
<pre><code>if (foo) { bar() } |
||||
|
while (foo) |
||||
|
bar()</code></pre> |
||||
|
|
||||
|
<p>Good:</p> |
||||
|
|
||||
|
<pre><code>if (foo) bar() |
||||
|
while (foo) { |
||||
|
bar() |
||||
|
}</code></pre> |
||||
|
|
||||
|
<h2 id="Semicolons">Semicolons</h2> |
||||
|
|
||||
|
<p>Don't use them except in four situations:</p> |
||||
|
|
||||
|
<ul><li><code>for (;;)</code> loops. They're actually required.</li><li>null loops like: <code>while (something) ;</code> (But you'd better have a good |
||||
|
reason for doing that.)</li><li>case "foo": doSomething(); break</li><li>In front of a leading ( or [ at the start of the line. |
||||
|
This prevents the expression from being interpreted |
||||
|
as a function call or property access, respectively.</li></ul> |
||||
|
|
||||
|
<p>Some examples of good semicolon usage:</p> |
||||
|
|
||||
|
<pre><code>;(x || y).doSomething() |
||||
|
;[a, b, c].forEach(doSomething) |
||||
|
for (var i = 0; i < 10; i ++) { |
||||
|
switch (state) { |
||||
|
case "begin": start(); continue |
||||
|
case "end": finish(); break |
||||
|
default: throw new Error("unknown state") |
||||
|
} |
||||
|
end() |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>Note that starting lines with <code>-</code> and <code>+</code> also should be prefixed |
||||
|
with a semicolon, but this is much less common.</p> |
||||
|
|
||||
|
<h2 id="Comma-First">Comma First</h2> |
||||
|
|
||||
|
<p>If there is a list of things separated by commas, and it wraps |
||||
|
across multiple lines, put the comma at the start of the next |
||||
|
line, directly below the token that starts the list. Put the |
||||
|
final token in the list on a line by itself. For example:</p> |
||||
|
|
||||
|
<pre><code>var magicWords = [ "abracadabra" |
||||
|
, "gesundheit" |
||||
|
, "ventrilo" |
||||
|
] |
||||
|
, spells = { "fireball" : function () { setOnFire() } |
||||
|
, "water" : function () { putOut() } |
||||
|
} |
||||
|
, a = 1 |
||||
|
, b = "abc" |
||||
|
, etc |
||||
|
, somethingElse</code></pre> |
||||
|
|
||||
|
<h2 id="Whitespace">Whitespace</h2> |
||||
|
|
||||
|
<p>Put a single space in front of ( for anything other than a function call. |
||||
|
Also use a single space wherever it makes things more readable.</p> |
||||
|
|
||||
|
<p>Don't leave trailing whitespace at the end of lines. Don't indent empty |
||||
|
lines. Don't use more spaces than are helpful.</p> |
||||
|
|
||||
|
<h2 id="Functions">Functions</h2> |
||||
|
|
||||
|
<p>Use named functions. They make stack traces a lot easier to read.</p> |
||||
|
|
||||
|
<h2 id="Callbacks-Sync-async-Style">Callbacks, Sync/async Style</h2> |
||||
|
|
||||
|
<p>Use the asynchronous/non-blocking versions of things as much as possible. |
||||
|
It might make more sense for npm to use the synchronous fs APIs, but this |
||||
|
way, the fs and http and child process stuff all uses the same callback-passing |
||||
|
methodology.</p> |
||||
|
|
||||
|
<p>The callback should always be the last argument in the list. Its first |
||||
|
argument is the Error or null.</p> |
||||
|
|
||||
|
<p>Be very careful never to ever ever throw anything. It's worse than useless. |
||||
|
Just send the error message back as the first argument to the callback.</p> |
||||
|
|
||||
|
<h2 id="Errors">Errors</h2> |
||||
|
|
||||
|
<p>Always create a new Error object with your message. Don't just return a |
||||
|
string message to the callback. Stack traces are handy.</p> |
||||
|
|
||||
|
<p>Use the <code>require("./utils/log").er</code> function. It takes a callback and an |
||||
|
error message, and returns an object that will report the message in the |
||||
|
event of a failure. It's quite handy.</p> |
||||
|
|
||||
|
<pre><code>function myThing (args, cb) { |
||||
|
getData(args, function (er, data) { |
||||
|
if (er) return log.er(cb, "Couldn't get data")(er) |
||||
|
doSomethingElse(data, cb) |
||||
|
}) |
||||
|
} |
||||
|
function justHasToWork (cb) { |
||||
|
doSomething(log.er(cb, "the doSomething failed.")) |
||||
|
}</code></pre> |
||||
|
|
||||
|
<h2 id="Logging">Logging</h2> |
||||
|
|
||||
|
<p>Please clean up logs when they are no longer helpful. In particular, |
||||
|
logging the same object over and over again is not helpful. Logs should |
||||
|
report what's happening so that it's easier to track down where a fault |
||||
|
occurs.</p> |
||||
|
|
||||
|
<p>Use appropriate log levels. The default log() function logs at the |
||||
|
"info" level. See <code><a href="../doc/config.html">config(1)</a></code> and search for "loglevel".</p> |
||||
|
|
||||
|
<h2 id="Case-naming-etc">Case, naming, etc.</h2> |
||||
|
|
||||
|
<p>Use <code>lowerCamelCase</code> for multiword identifiers when they refer to objects, |
||||
|
functions, methods, members, or anything not specified in this section.</p> |
||||
|
|
||||
|
<p>Use <code>UpperCamelCase</code> for class names (things that you'd pass to "new").</p> |
||||
|
|
||||
|
<p>Use <code>all-lower-hyphen-css-case</code> for multiword filenames and config keys.</p> |
||||
|
|
||||
|
<p>Use named functions. They make stack traces easier to follow.</p> |
||||
|
|
||||
|
<p>Use <code>CAPS_SNAKE_CASE</code> for constants, things that should never change |
||||
|
and are rarely used.</p> |
||||
|
|
||||
|
<p>Use a single uppercase letter for function names where the function |
||||
|
would normally be anonymous, but needs to call itself recursively. It |
||||
|
makes it clear that it's a "throwaway" function.</p> |
||||
|
|
||||
|
<h2 id="null-undefined-false-0">null, undefined, false, 0</h2> |
||||
|
|
||||
|
<p>Boolean variables and functions should always be either <code>true</code> or |
||||
|
<code>false</code>. Don't set it to 0 unless it's supposed to be a number.</p> |
||||
|
|
||||
|
<p>When something is intentionally missing or removed, set it to <code>null</code>.</p> |
||||
|
|
||||
|
<p>Don't set things to <code>undefined</code>. Reserve that value to mean "not yet |
||||
|
set to anything."</p> |
||||
|
|
||||
|
<p>Boolean objects are verboten.</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/npm.html">npm(1)</a></li></ul> |
||||
|
</div> |
||||
|
<p id="footer">coding-style — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,68 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>completion</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/completion.html">completion</a></h1> <p>Tab Completion for npm</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>. <(npm completion)</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Enables tab-completion in all npm commands.</p> |
||||
|
|
||||
|
<p>The synopsis above |
||||
|
loads the completions into your current shell. Adding it to |
||||
|
your ~/.bashrc or ~/.zshrc will make the completions available |
||||
|
everywhere.</p> |
||||
|
|
||||
|
<p>You may of course also pipe the output of npm completion to a file |
||||
|
such as <code>/usr/local/etc/bash_completion.d/npm</code> if you have a system |
||||
|
that will read that file for you.</p> |
||||
|
|
||||
|
<p>When <code>COMP_CWORD</code>, <code>COMP_LINE</code>, and <code>COMP_POINT</code> are defined in the |
||||
|
environment, <code>npm completion</code> acts in "plumbing mode", and outputs |
||||
|
completions based on the arguments.</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/npm.html">npm(1)</a></li></ul> |
||||
|
</div> |
||||
|
<p id="footer">completion — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,621 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>config</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">config — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>deprecate</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/deprecate.html">deprecate</a></h1> <p>Deprecate a version of a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm deprecate <name>[@<version>] <message></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command will update the npm registry entry for a package, providing |
||||
|
a deprecation warning to all who attempt to install it.</p> |
||||
|
|
||||
|
<p>It works on version ranges as well as specific versions, so you can do |
||||
|
something like this:</p> |
||||
|
|
||||
|
<pre><code>npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"</code></pre> |
||||
|
|
||||
|
<p>Note that you must be the package owner to deprecate something. See the |
||||
|
<code>owner</code> and <code>adduser</code> help topics.</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></ul> |
||||
|
</div> |
||||
|
<p id="footer">deprecate — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,185 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>developers</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/developers.html">developers</a></h1> <p>Developer Guide</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>So, you've decided to use npm to develop (and maybe publish/deploy) |
||||
|
your project.</p> |
||||
|
|
||||
|
<p>Fantastic!</p> |
||||
|
|
||||
|
<p>There are a few things that you need to do above the simple steps |
||||
|
that your users will do to install your program.</p> |
||||
|
|
||||
|
<h2 id="About-These-Documents">About These Documents</h2> |
||||
|
|
||||
|
<p>These are man pages. If you install npm, you should be able to |
||||
|
then do <code>man npm-thing</code> to get the documentation on a particular |
||||
|
topic, or <code>npm help thing</code> to see the same information.</p> |
||||
|
|
||||
|
<h2 id="What-is-a-package">What is a `package`</h2> |
||||
|
|
||||
|
<p>A package is:</p> |
||||
|
|
||||
|
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code><name>@<version></code> that is published on the registry with (c)</li><li>e) a <code><name>@<tag></code> that points to (d)</li><li>f) a <code><name></code> that has a "latest" tag satisfying (e)</li></ul> |
||||
|
|
||||
|
<p>Even if you never publish your package, you can still get a lot of |
||||
|
benefits of using npm if you just want to write a node program (a), and |
||||
|
perhaps if you also want to be able to easily install it elsewhere |
||||
|
after packing it up into a tarball (b).</p> |
||||
|
|
||||
|
<h2 id="The-package-json-File">The package.json File</h2> |
||||
|
|
||||
|
<p>You need to have a <code>package.json</code> file in the root of your project to do |
||||
|
much of anything with npm. That is basically the whole interface.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/json.html">json(1)</a></code> for details about what goes in that file. At the very |
||||
|
least, you need:</p> |
||||
|
|
||||
|
<ul><li><p>name: |
||||
|
This should be a string that identifies your project. Please do not |
||||
|
use the name to specify that it runs on node, or is in JavaScript. |
||||
|
You can use the "engines" field to explicitly state the versions of |
||||
|
node (or whatever else) that your program requires, and it's pretty |
||||
|
well assumed that it's javascript.</p><p>It does not necessarily need to match your github repository name.</p><p>So, <code>node-foo</code> and <code>bar-js</code> are bad names. <code>foo</code> or <code>bar</code> are better.</p></li><li><p>version: |
||||
|
A semver-compatible version.</p></li><li><p>engines: |
||||
|
Specify the versions of node (or whatever else) that your program |
||||
|
runs on. The node API changes a lot, and there may be bugs or new |
||||
|
functionality that you depend on. Be explicit.</p></li><li><p>author: |
||||
|
Take some credit.</p></li><li><p>scripts: |
||||
|
If you have a special compilation or installation script, then you |
||||
|
should put it in the <code>scripts</code> hash. You should definitely have at |
||||
|
least a basic smoke-test command as the "scripts.test" field. |
||||
|
See <a href="../doc/scripts.html">scripts(1)</a>.</p></li><li><p>main: |
||||
|
If you have a single module that serves as the entry point to your |
||||
|
program (like what the "foo" package gives you at require("foo")), |
||||
|
then you need to specify that in the "main" field.</p></li><li><p>directories: |
||||
|
This is a hash of folders. The best ones to include are "lib" and |
||||
|
"doc", but if you specify a folder full of man pages in "man", then |
||||
|
they'll get installed just like these ones.</p></li></ul> |
||||
|
|
||||
|
<p>You can use <code>npm init</code> in the root of your package in order to get you |
||||
|
started with a pretty basic package.json file. See <code><a href="../doc/init.html">init(1)</a></code> for |
||||
|
more info.</p> |
||||
|
|
||||
|
<h2 id="Keeping-files-out-of-your-package">Keeping files *out* of your package</h2> |
||||
|
|
||||
|
<p>Use a <code>.npmignore</code> file to keep stuff out of your package. If there's |
||||
|
no .npmignore file, but there <em>is</em> a .gitignore file, then npm will |
||||
|
ignore the stuff matched by the .gitignore file. If you <em>want</em> to |
||||
|
include something that is excluded by your .gitignore file, you can |
||||
|
create an empty .npmignore file to override it.</p> |
||||
|
|
||||
|
<h2 id="Link-Packages">Link Packages</h2> |
||||
|
|
||||
|
<p><code>npm link</code> is designed to install a development package and see the |
||||
|
changes in real time without having to keep re-installing it. (You do |
||||
|
need to either re-link or <code>npm rebuild -g</code> to update compiled packages, |
||||
|
of course.)</p> |
||||
|
|
||||
|
<p>More info at <code><a href="../doc/link.html">link(1)</a></code>.</p> |
||||
|
|
||||
|
<h2 id="Before-Publishing-Make-Sure-Your-Package-Installs-and-Works">Before Publishing: Make Sure Your Package Installs and Works</h2> |
||||
|
|
||||
|
<p><strong>This is important.</strong></p> |
||||
|
|
||||
|
<p>If you can not install it locally, you'll have |
||||
|
problems trying to publish it. Or, worse yet, you'll be able to |
||||
|
publish it, but you'll be publishing a broken or pointless package. |
||||
|
So don't do that.</p> |
||||
|
|
||||
|
<p>In the root of your package, do this:</p> |
||||
|
|
||||
|
<pre><code>npm install . -g</code></pre> |
||||
|
|
||||
|
<p>That'll show you that it's working. If you'd rather just create a symlink |
||||
|
package that points to your working directory, then do this:</p> |
||||
|
|
||||
|
<pre><code>npm link</code></pre> |
||||
|
|
||||
|
<p>Use <code>npm ls -g</code> to see if it's there.</p> |
||||
|
|
||||
|
<p>To test a local install, go into some other folder, and then do:</p> |
||||
|
|
||||
|
<pre><code>cd ../some-other-folder |
||||
|
npm install ../my-package</code></pre> |
||||
|
|
||||
|
<p>to install it locally into the node_modules folder in that other place.</p> |
||||
|
|
||||
|
<p>Then go into the node-repl, and try using require("my-thing") to |
||||
|
bring in your module's main module.</p> |
||||
|
|
||||
|
<h2 id="Create-a-User-Account">Create a User Account</h2> |
||||
|
|
||||
|
<p>Create a user with the adduser command. It works like this:</p> |
||||
|
|
||||
|
<pre><code>npm adduser</code></pre> |
||||
|
|
||||
|
<p>and then follow the prompts.</p> |
||||
|
|
||||
|
<p>This is documented better in <a href="../doc/adduser.html">adduser(1)</a>.</p> |
||||
|
|
||||
|
<h2 id="Publish-your-package">Publish your package</h2> |
||||
|
|
||||
|
<p>This part's easy. IN the root of your folder, do this:</p> |
||||
|
|
||||
|
<pre><code>npm publish</code></pre> |
||||
|
|
||||
|
<p>You can give publish a url to a tarball, or a filename of a tarball, |
||||
|
or a path to a folder.</p> |
||||
|
|
||||
|
<p>Note that pretty much <strong>everything in that folder will be exposed</strong> |
||||
|
by default. So, if you have secret stuff in there, use a <code>.npminclude</code> |
||||
|
or <code>.npmignore</code> file to list out the globs to include/ignore, or publish |
||||
|
from a fresh checkout.</p> |
||||
|
|
||||
|
<h2 id="Brag-about-it">Brag about it</h2> |
||||
|
|
||||
|
<p>Send emails, write blogs, blab in IRC.</p> |
||||
|
|
||||
|
<p>Tell the world how easy it is to install your program!</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,72 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>docs</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">docs — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,72 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>edit</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/edit.html">edit</a></h1> <p>Edit an installed package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm edit <name>[@<version>]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Opens the package folder in the default editor (or whatever you've |
||||
|
configured as the npm <code>editor</code> config -- see <code><a href="../doc/config.html">config(1)</a></code>.)</p> |
||||
|
|
||||
|
<p>After it has been edited, the package is rebuilt so as to pick up any |
||||
|
changes in compiled packages.</p> |
||||
|
|
||||
|
<p>For instance, you can do <code>npm install connect</code> to install connect |
||||
|
into your package, and then <code>npm edit connect</code> to make a few |
||||
|
changes to your locally installed copy.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<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> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,75 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>explore</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/explore.html">explore</a></h1> <p>Browse an installed package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm explore <name>[@<version>] [ -- <cmd>]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Spawn a subshell in the directory of the installed package specified.</p> |
||||
|
|
||||
|
<p>If a command is specified, then it is run in the subshell, which then |
||||
|
immediately terminates.</p> |
||||
|
|
||||
|
<p>This is particularly handy in the case of git submodules in the |
||||
|
<code>node_modules</code> folder:</p> |
||||
|
|
||||
|
<pre><code>npm explore some-dependency -- git pull origin master</code></pre> |
||||
|
|
||||
|
<p>Note that the package is <em>not</em> automatically rebuilt afterwards, so be |
||||
|
sure to use <code>npm rebuild <pkg></code> if you make any changes.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<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> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,250 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>faq</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/faq.html">faq</a></h1> <p>Frequently Asked Questions</p> |
||||
|
|
||||
|
<h2 id="Where-can-I-find-these-docs-in-HTML">Where can I find these docs in HTML?</h2> |
||||
|
|
||||
|
<p><a href="http://npmjs.org/doc/">http://npmjs.org/doc/</a>, or run:</p> |
||||
|
|
||||
|
<pre><code>npm config set viewer browser</code></pre> |
||||
|
|
||||
|
<p>to open these documents in your default web browser rather than <code>man</code>.</p> |
||||
|
|
||||
|
<h2 id="It-didn-t-work">It didn't work.</h2> |
||||
|
|
||||
|
<p>That's not really a question.</p> |
||||
|
|
||||
|
<h2 id="Why-didn-t-it-work">Why didn't it work?</h2> |
||||
|
|
||||
|
<p>I don't know yet.</p> |
||||
|
|
||||
|
<p>Read the error output, and if you can't figure out what it means, |
||||
|
do what it says and post a bug with all the information it asks for.</p> |
||||
|
|
||||
|
<h2 id="Where-does-npm-put-stuff">Where does npm put stuff?</h2> |
||||
|
|
||||
|
<p>See <code><a href="../doc/folders.html">folders(1)</a></code></p> |
||||
|
|
||||
|
<p>tl;dr:</p> |
||||
|
|
||||
|
<ul><li>Use the <code>npm root</code> command to see where modules go, and the <code>npm bin</code> |
||||
|
command to see where executables go</li><li>Global installs are different from local installs. If you install |
||||
|
something with the <code>-g</code> flag, then its executables go in <code>npm bin -g</code> |
||||
|
and its modules go in <code>npm root -g</code>.</li></ul> |
||||
|
|
||||
|
<h2 id="How-do-I-install-something-everywhere">How do I install something everywhere?</h2> |
||||
|
|
||||
|
<p>Install it globally by tacking <code>-g</code> or <code>--global</code> to the command.</p> |
||||
|
|
||||
|
<h2 id="I-installed-something-globally-but-I-can-t-require-it">I installed something globally, but I can't `require()` it</h2> |
||||
|
|
||||
|
<p>Install it locally.</p> |
||||
|
|
||||
|
<h2 id="I-don-t-wanna">I don't wanna.</h2> |
||||
|
|
||||
|
<p>Check out <code>npm link</code>. You might like it.</p> |
||||
|
|
||||
|
<h2 id="No-I-really-want-0-x-style-everything-global-style">No, I really want 0.x style 'everything global' style.</h2> |
||||
|
|
||||
|
<p>Ok, fine. Do this:</p> |
||||
|
|
||||
|
<pre><code>echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bashrc |
||||
|
. ~/.bashrc |
||||
|
npm config set global true</code></pre> |
||||
|
|
||||
|
<p>This is not recommended.</p> |
||||
|
|
||||
|
<p>Many things <strong>will not work</strong> if you do this. Make sure you read and |
||||
|
understand <code><a href="../doc/config.html">config(1)</a></code> and <code><a href="../doc/global.html">global(1)</a></code> before you complain |
||||
|
about things being broken.</p> |
||||
|
|
||||
|
<p>When you realize what a mistake it was, do this to switch back:</p> |
||||
|
|
||||
|
<pre><code>npm config delete global --local</code></pre> |
||||
|
|
||||
|
<h2 id="If-npm-is-an-acronym-why-is-it-never-capitalized">If 'npm' is an acronym, why is it never capitalized?</h2> |
||||
|
|
||||
|
<p>Contrary to the belief of many, "npm" is not in fact an abbreviation for |
||||
|
"Node Package Manager". It is a recursive bacronymic abbreviation for |
||||
|
"npm is not an acronym". (If it was "ninaa", then it would be an |
||||
|
acronym, and thus incorrectly named.)</p> |
||||
|
|
||||
|
<p>"NPM", however, <em>is</em> an acronym (more precisely, a capitonym) for the |
||||
|
National Association of Pastoral Musicians. You can learn more |
||||
|
about them at <a href="http://npm.org/">http://npm.org/</a>.</p> |
||||
|
|
||||
|
<p>In software, "NPM" is a non-parametric mapping utility written by |
||||
|
Chris Rorden. You can analyze pictures of brains with it. Learn more |
||||
|
about the (capitalized) NPM program at <a href="http://www.cabiatl.com/mricro/npm/">http://www.cabiatl.com/mricro/npm/</a>.</p> |
||||
|
|
||||
|
<p>The first seed that eventually grew into this flower was a bash utility |
||||
|
named "pm", which was a shortened descendent of "pkgmakeinst", a |
||||
|
bash function that was used to install various different things on different |
||||
|
platforms, most often using Yahoo's <code>yinst</code>. If <code>npm</code> was ever an |
||||
|
acronym for anything, it was <code>node pm</code> or maybe <code>new pm</code>.</p> |
||||
|
|
||||
|
<p>So, in all seriousness, the "npm" project is named after its command-line |
||||
|
utility, which was organically selected to be easily typed by a right-handed |
||||
|
programmer using a US QWERTY keyboard layout, ending with the |
||||
|
right-ring-finger in a postition to type the <code>-</code> key for flags and |
||||
|
other command-line arguments. That command-line utility is always |
||||
|
lower-case, though it starts most sentences it is a part of.</p> |
||||
|
|
||||
|
<h2 id="How-do-I-list-installed-packages">How do I list installed packages?</h2> |
||||
|
|
||||
|
<p><code>npm ls</code></p> |
||||
|
|
||||
|
<h2 id="How-do-I-search-for-packages">How do I search for packages?</h2> |
||||
|
|
||||
|
<p><code>npm search</code></p> |
||||
|
|
||||
|
<p>Arguments are greps. <code>npm search jsdom</code> shows jsdom packages.</p> |
||||
|
|
||||
|
<h2 id="How-do-I-update-npm">How do I update npm?</h2> |
||||
|
|
||||
|
<pre><code>npm update npm -g</code></pre> |
||||
|
|
||||
|
<p>You can also update all outdated local packages by doing <code>npm update</code> without |
||||
|
any arguments, or global packages by doing <code>npm update -g</code>.</p> |
||||
|
|
||||
|
<p>Occasionally, the version of npm will progress such that the current |
||||
|
version cannot be properly installed with the version that you have |
||||
|
installed already. (Consider, if there is ever a bug in the <code>update</code> |
||||
|
command.)</p> |
||||
|
|
||||
|
<p>In those cases, you can do this:</p> |
||||
|
|
||||
|
<pre><code>curl http://npmjs.org/install.sh | sh</code></pre> |
||||
|
|
||||
|
<h2 id="What-is-a-package">What is a `package`?</h2> |
||||
|
|
||||
|
<p>A package is:</p> |
||||
|
|
||||
|
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code><name>@<version></code> that is published on the registry with (c)</li><li>e) a <code><name>@<tag></code> that points to (d)</li><li>f) a <code><name></code> that has a "latest" tag satisfying (e)</li><li>g) a <code>git</code> url that, when cloned, results in (a).</li></ul> |
||||
|
|
||||
|
<p>Even if you never publish your package, you can still get a lot of |
||||
|
benefits of using npm if you just want to write a node program (a), and |
||||
|
perhaps if you also want to be able to easily install it elsewhere |
||||
|
after packing it up into a tarball (b).</p> |
||||
|
|
||||
|
<p>Git urls can be of the form:</p> |
||||
|
|
||||
|
<pre><code>git://github.com/user/project.git#commit-ish |
||||
|
git+ssh://user@hostname:project.git#commit-ish |
||||
|
git+http://user@hostname/project/blah.git#commit-ish |
||||
|
git+https://user@hostname/project/blah.git#commit-ish</code></pre> |
||||
|
|
||||
|
<p>The <code>commit-ish</code> can be any tag, sha, or branch which can be supplied as |
||||
|
an argument to <code>git checkout</code>. The default is <code>master</code>.</p> |
||||
|
|
||||
|
<h2 id="How-do-I-install-node-with-npm">How do I install node with npm?</h2> |
||||
|
|
||||
|
<p>You don't. Try one of these:</p> |
||||
|
|
||||
|
<ul><li><a href="http://github.com/isaacs/nave">http://github.com/isaacs/nave</a></li><li><a href="http://github.com/visionmedia/n">http://github.com/visionmedia/n</a></li><li><a href="http://github.com/creationix/nvm">http://github.com/creationix/nvm</a></li></ul> |
||||
|
|
||||
|
<h2 id="How-can-I-use-npm-for-development">How can I use npm for development?</h2> |
||||
|
|
||||
|
<p>See <code><a href="../doc/developers.html">developers(1)</a></code> and <code><a href="../doc/json.html">json(1)</a></code>.</p> |
||||
|
|
||||
|
<p>You'll most likely want to <code>npm link</code> your development folder. That's |
||||
|
awesomely handy.</p> |
||||
|
|
||||
|
<p>To set up your own private registry, check out <code><a href="../doc/registry.html">registry(1)</a></code>.</p> |
||||
|
|
||||
|
<h2 id="Can-I-list-a-url-as-a-dependency">Can I list a url as a dependency?</h2> |
||||
|
|
||||
|
<p>Yes. It should be a url to a gzipped tarball containing a single folder |
||||
|
that has a package.json in its root, or a git url. |
||||
|
(See "what is a package?" above.)</p> |
||||
|
|
||||
|
<h2 id="How-do-I-symlink-to-a-dev-folder-so-I-don-t-have-to-keep-re-installing">How do I symlink to a dev folder so I don't have to keep re-installing?</h2> |
||||
|
|
||||
|
<p>See <code><a href="../doc/link.html">link(1)</a></code></p> |
||||
|
|
||||
|
<h2 id="The-package-registry-website-What-is-that-exactly">The package registry website. What is that exactly?</h2> |
||||
|
|
||||
|
<p>See <code><a href="../doc/registry.html">registry(1)</a></code>.</p> |
||||
|
|
||||
|
<h2 id="What-s-up-with-the-insecure-channel-warnings">What's up with the insecure channel warnings?</h2> |
||||
|
|
||||
|
<p>Until node 0.4.10, there were problems sending big files over HTTPS. That |
||||
|
means that publishes go over HTTP by default in those versions of node.</p> |
||||
|
|
||||
|
<h2 id="I-forgot-my-password-and-can-t-publish-How-do-I-reset-it">I forgot my password, and can't publish. How do I reset it?</h2> |
||||
|
|
||||
|
<p>Go to <a href="http://admin.npmjs.org/reset">http://admin.npmjs.org/reset</a>.</p> |
||||
|
|
||||
|
<h2 id="I-get-ECONNREFUSED-a-lot-What-s-up">I get ECONNREFUSED a lot. What's up?</h2> |
||||
|
|
||||
|
<p>Either the registry is down, or node's DNS isn't able to reach out. |
||||
|
This happens a lot if you don't follow <em>all</em> the steps in the Cygwin |
||||
|
setup doc.</p> |
||||
|
|
||||
|
<p>To check if the registry is down, open up |
||||
|
<a href="http://registry.npmjs.org/-/short">http://registry.npmjs.org/-/short</a> |
||||
|
in a web browser. This will also tell you if you are just unable to |
||||
|
access the internet for some reason.</p> |
||||
|
|
||||
|
<p>If the registry IS down, let me know by emailing or posting an issue. |
||||
|
We'll have someone kick it or something.</p> |
||||
|
|
||||
|
<h2 id="Who-does-npm">Who does npm?</h2> |
||||
|
|
||||
|
<p><code>npm view npm author</code></p> |
||||
|
|
||||
|
<p><code>npm view npm contributors</code></p> |
||||
|
|
||||
|
<h2 id="I-have-a-question-or-request-not-addressed-here-Where-should-I-put-it">I have a question or request not addressed here. Where should I put it?</h2> |
||||
|
|
||||
|
<p>Discuss it on the mailing list, or post an issue.</p> |
||||
|
|
||||
|
<ul><li><a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li><li><a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li></ul> |
||||
|
|
||||
|
<h2 id="Why-does-npm-hate-me">Why does npm hate me?</h2> |
||||
|
|
||||
|
<p>npm is not capable of hatred. It loves everyone, especially you.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,75 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,240 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>folders</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">folders — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,621 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,240 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,73 @@ |
|||||
|
<!doctype 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"> |
||||
|
|
||||
|
<body> |
||||
|
<div id="wrapper"> |
||||
|
<h1><a href="../doc/help-search.html">help-search</a></h1> <p>Search npm help documentation</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm help-search some search terms</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command will search the npm markdown documentation files for the |
||||
|
terms provided, and then list the results, sorted by relevance.</p> |
||||
|
|
||||
|
<p>If only one result is found, then it will show that help topic.</p> |
||||
|
|
||||
|
<p>If the argument to <code>npm help</code> is not a known help topic, then it will |
||||
|
call <code>help-search</code>. It is rarely if ever necessary to call this |
||||
|
command directly.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<h3 id="long">long</h3> |
||||
|
|
||||
|
<ul><li>Type: Boolean</li><li>Default false</li></ul> |
||||
|
|
||||
|
<p>If true, the "long" flag will cause help-search to output context around |
||||
|
where the terms were found in the documentation.</p> |
||||
|
|
||||
|
<p>If false, then help-search will just list out the help topics found.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,71 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>help</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/help.html">help</a></h1> <p>Get help on npm</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm help <topic> |
||||
|
npm help some search terms</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>If supplied a topic, then show the appropriate documentation page.</p> |
||||
|
|
||||
|
<p>If the topic does not exist, or if multiple terms are provided, then run |
||||
|
the <code>help-search</code> command to find a match. Note that, if <code>help-search</code> |
||||
|
finds a single subject, then it will run <code>help</code> on that topic, so unique |
||||
|
matches are equivalent to specifying a topic name.</p> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<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> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,72 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,407 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>index</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/index.html">index</a></h1> <p>Index of all npm documentation</p> |
||||
|
|
||||
|
<h2 id="npm-README-1"><a href="../doc/README.html">README</a></h2> |
||||
|
|
||||
|
<p> node package manager</p> |
||||
|
|
||||
|
<h1>Command Line Documentation</h1> |
||||
|
|
||||
|
<h2 id="npm-adduser-1"><a href="../doc/adduser.html">adduser(1)</a></h2> |
||||
|
|
||||
|
<p> Add a registry user account</p> |
||||
|
|
||||
|
<h2 id="npm-bin-1"><a href="../doc/bin.html">bin(1)</a></h2> |
||||
|
|
||||
|
<p> Display npm bin folder</p> |
||||
|
|
||||
|
<h2 id="npm-bugs-1"><a href="../doc/bugs.html">bugs(1)</a></h2> |
||||
|
|
||||
|
<p> Bugs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="npm-build-1"><a href="../doc/build.html">build(1)</a></h2> |
||||
|
|
||||
|
<p> Build a package</p> |
||||
|
|
||||
|
<h2 id="npm-bundle-1"><a href="../doc/bundle.html">bundle(1)</a></h2> |
||||
|
|
||||
|
<p> REMOVED</p> |
||||
|
|
||||
|
<h2 id="npm-cache-1"><a href="../doc/cache.html">cache(1)</a></h2> |
||||
|
|
||||
|
<p> Manipulates packages cache</p> |
||||
|
|
||||
|
<h2 id="npm-changelog-1"><a href="../doc/changelog.html">changelog(1)</a></h2> |
||||
|
|
||||
|
<p> Changes</p> |
||||
|
|
||||
|
<h2 id="npm-coding-style-1"><a href="../doc/coding-style.html">coding-style(1)</a></h2> |
||||
|
|
||||
|
<p> npm's "funny" coding style</p> |
||||
|
|
||||
|
<h2 id="npm-completion-1"><a href="../doc/completion.html">completion(1)</a></h2> |
||||
|
|
||||
|
<p> Tab Completion for npm</p> |
||||
|
|
||||
|
<h2 id="npm-config-1"><a href="../doc/config.html">config(1)</a></h2> |
||||
|
|
||||
|
<p> Manage the npm configuration file</p> |
||||
|
|
||||
|
<h2 id="npm-deprecate-1"><a href="../doc/deprecate.html">deprecate(1)</a></h2> |
||||
|
|
||||
|
<p> Deprecate a version of a package</p> |
||||
|
|
||||
|
<h2 id="npm-developers-1"><a href="../doc/developers.html">developers(1)</a></h2> |
||||
|
|
||||
|
<p> Developer Guide</p> |
||||
|
|
||||
|
<h2 id="npm-docs-1"><a href="../doc/docs.html">docs(1)</a></h2> |
||||
|
|
||||
|
<p> Docs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="npm-edit-1"><a href="../doc/edit.html">edit(1)</a></h2> |
||||
|
|
||||
|
<p> Edit an installed package</p> |
||||
|
|
||||
|
<h2 id="npm-explore-1"><a href="../doc/explore.html">explore(1)</a></h2> |
||||
|
|
||||
|
<p> Browse an installed package</p> |
||||
|
|
||||
|
<h2 id="npm-faq-1"><a href="../doc/faq.html">faq(1)</a></h2> |
||||
|
|
||||
|
<p> Frequently Asked Questions</p> |
||||
|
|
||||
|
<h2 id="npm-folders-1"><a href="../doc/folders.html">folders(1)</a></h2> |
||||
|
|
||||
|
<p> Folder Structures Used by npm</p> |
||||
|
|
||||
|
<h2 id="npm-help-search-1"><a href="../doc/help-search.html">help-search(1)</a></h2> |
||||
|
|
||||
|
<p> Search npm help documentation</p> |
||||
|
|
||||
|
<h2 id="npm-help-1"><a href="../doc/help.html">help(1)</a></h2> |
||||
|
|
||||
|
<p> Get help on npm</p> |
||||
|
|
||||
|
<h2 id="npm-init-1"><a href="../doc/init.html">init(1)</a></h2> |
||||
|
|
||||
|
<p> Interactively create a package.json file</p> |
||||
|
|
||||
|
<h2 id="npm-install-1"><a href="../doc/install.html">install(1)</a></h2> |
||||
|
|
||||
|
<p> Install a package</p> |
||||
|
|
||||
|
<h2 id="npm-json-1"><a href="../doc/json.html">json(1)</a></h2> |
||||
|
|
||||
|
<p> Specifics of npm's package.json handling</p> |
||||
|
|
||||
|
<h2 id="npm-link-1"><a href="../doc/link.html">link(1)</a></h2> |
||||
|
|
||||
|
<p> Symlink a package folder</p> |
||||
|
|
||||
|
<h2 id="npm-list-1"><a href="../doc/list.html">list(1)</a></h2> |
||||
|
|
||||
|
<p> List installed packages</p> |
||||
|
|
||||
|
<h2 id="npm-1"><a href="../doc/npm.html">npm(1)</a></h2> |
||||
|
|
||||
|
<p> node package manager</p> |
||||
|
|
||||
|
<h2 id="npm-outdated-1"><a href="../doc/outdated.html">outdated(1)</a></h2> |
||||
|
|
||||
|
<p> Check for outdated packages</p> |
||||
|
|
||||
|
<h2 id="npm-owner-1"><a href="../doc/owner.html">owner(1)</a></h2> |
||||
|
|
||||
|
<p> Manage package owners</p> |
||||
|
|
||||
|
<h2 id="npm-pack-1"><a href="../doc/pack.html">pack(1)</a></h2> |
||||
|
|
||||
|
<p> Create a tarball from a package</p> |
||||
|
|
||||
|
<h2 id="npm-prefix-1"><a href="../doc/prefix.html">prefix(1)</a></h2> |
||||
|
|
||||
|
<p> Display prefix</p> |
||||
|
|
||||
|
<h2 id="npm-prune-1"><a href="../doc/prune.html">prune(1)</a></h2> |
||||
|
|
||||
|
<p> Remove extraneous packages</p> |
||||
|
|
||||
|
<h2 id="npm-publish-1"><a href="../doc/publish.html">publish(1)</a></h2> |
||||
|
|
||||
|
<p> Publish a package</p> |
||||
|
|
||||
|
<h2 id="npm-rebuild-1"><a href="../doc/rebuild.html">rebuild(1)</a></h2> |
||||
|
|
||||
|
<p> Rebuild a package</p> |
||||
|
|
||||
|
<h2 id="npm-registry-1"><a href="../doc/registry.html">registry(1)</a></h2> |
||||
|
|
||||
|
<p> The JavaScript Package Registry</p> |
||||
|
|
||||
|
<h2 id="npm-removing-npm-1"><a href="../doc/removing-npm.html">removing-npm(1)</a></h2> |
||||
|
|
||||
|
<p> Cleaning the Slate</p> |
||||
|
|
||||
|
<h2 id="npm-restart-1"><a href="../doc/restart.html">restart(1)</a></h2> |
||||
|
|
||||
|
<p> Start a package</p> |
||||
|
|
||||
|
<h2 id="npm-root-1"><a href="../doc/root.html">root(1)</a></h2> |
||||
|
|
||||
|
<p> Display npm root</p> |
||||
|
|
||||
|
<h2 id="npm-run-script-1"><a href="../doc/run-script.html">run-script(1)</a></h2> |
||||
|
|
||||
|
<p> Run arbitrary package scripts</p> |
||||
|
|
||||
|
<h2 id="npm-scripts-1"><a href="../doc/scripts.html">scripts(1)</a></h2> |
||||
|
|
||||
|
<p> How npm handles the "scripts" field</p> |
||||
|
|
||||
|
<h2 id="npm-search-1"><a href="../doc/search.html">search(1)</a></h2> |
||||
|
|
||||
|
<p> Search for packages</p> |
||||
|
|
||||
|
<h2 id="npm-semver-1"><a href="../doc/semver.html">semver(1)</a></h2> |
||||
|
|
||||
|
<p> The semantic versioner for npm</p> |
||||
|
|
||||
|
<h2 id="npm-star-1"><a href="../doc/star.html">star(1)</a></h2> |
||||
|
|
||||
|
<p> Mark your favorite packages</p> |
||||
|
|
||||
|
<h2 id="npm-start-1"><a href="../doc/start.html">start(1)</a></h2> |
||||
|
|
||||
|
<p> Start a package</p> |
||||
|
|
||||
|
<h2 id="npm-stop-1"><a href="../doc/stop.html">stop(1)</a></h2> |
||||
|
|
||||
|
<p> Stop a package</p> |
||||
|
|
||||
|
<h2 id="npm-submodule-1"><a href="../doc/submodule.html">submodule(1)</a></h2> |
||||
|
|
||||
|
<p> Add a package as a git submodule</p> |
||||
|
|
||||
|
<h2 id="npm-tag-1"><a href="../doc/tag.html">tag(1)</a></h2> |
||||
|
|
||||
|
<p> Tag a published version</p> |
||||
|
|
||||
|
<h2 id="npm-test-1"><a href="../doc/test.html">test(1)</a></h2> |
||||
|
|
||||
|
<p> Test a package</p> |
||||
|
|
||||
|
<h2 id="npm-uninstall-1"><a href="../doc/uninstall.html">uninstall(1)</a></h2> |
||||
|
|
||||
|
<p> Remove a package</p> |
||||
|
|
||||
|
<h2 id="npm-unpublish-1"><a href="../doc/unpublish.html">unpublish(1)</a></h2> |
||||
|
|
||||
|
<p> Remove a package from the registry</p> |
||||
|
|
||||
|
<h2 id="npm-update-1"><a href="../doc/update.html">update(1)</a></h2> |
||||
|
|
||||
|
<p> Update a package</p> |
||||
|
|
||||
|
<h2 id="npm-version-1"><a href="../doc/version.html">version(1)</a></h2> |
||||
|
|
||||
|
<p> Bump a package version</p> |
||||
|
|
||||
|
<h2 id="npm-view-1"><a href="../doc/view.html">view(1)</a></h2> |
||||
|
|
||||
|
<p> View registry info</p> |
||||
|
|
||||
|
<h2 id="npm-whoami-1"><a href="../doc/whoami.html">whoami(1)</a></h2> |
||||
|
|
||||
|
<p> Display npm username</p> |
||||
|
|
||||
|
<h1>API Documentation</h1> |
||||
|
|
||||
|
<h2 id="npm-bin-3"><a href="../api/bin.html">bin(3)</a></h2> |
||||
|
|
||||
|
<p> Display npm bin folder</p> |
||||
|
|
||||
|
<h2 id="npm-bugs-3"><a href="../api/bugs.html">bugs(3)</a></h2> |
||||
|
|
||||
|
<p> Bugs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="npm-commands-3"><a href="../api/commands.html">commands(3)</a></h2> |
||||
|
|
||||
|
<p> npm commands</p> |
||||
|
|
||||
|
<h2 id="npm-config-3"><a href="../api/config.html">config(3)</a></h2> |
||||
|
|
||||
|
<p> Manage the npm configuration files</p> |
||||
|
|
||||
|
<h2 id="npm-deprecate-3"><a href="../api/deprecate.html">deprecate(3)</a></h2> |
||||
|
|
||||
|
<p> Deprecate a version of a package</p> |
||||
|
|
||||
|
<h2 id="npm-docs-3"><a href="../api/docs.html">docs(3)</a></h2> |
||||
|
|
||||
|
<p> Docs for a package in a web browser maybe</p> |
||||
|
|
||||
|
<h2 id="npm-edit-3"><a href="../api/edit.html">edit(3)</a></h2> |
||||
|
|
||||
|
<p> Edit an installed package</p> |
||||
|
|
||||
|
<h2 id="npm-explore-3"><a href="../api/explore.html">explore(3)</a></h2> |
||||
|
|
||||
|
<p> Browse an installed package</p> |
||||
|
|
||||
|
<h2 id="npm-help-search-3"><a href="../api/help-search.html">help-search(3)</a></h2> |
||||
|
|
||||
|
<p> Search the help pages</p> |
||||
|
|
||||
|
<h2 id="npm-init-3"><a href="../api/init.html">init(3)</a></h2> |
||||
|
|
||||
|
<p> Interactively create a package.json file</p> |
||||
|
|
||||
|
<h2 id="npm-install-3"><a href="../api/install.html">install(3)</a></h2> |
||||
|
|
||||
|
<p> install a package programmatically</p> |
||||
|
|
||||
|
<h2 id="npm-link-3"><a href="../api/link.html">link(3)</a></h2> |
||||
|
|
||||
|
<p> Symlink a package folder</p> |
||||
|
|
||||
|
<h2 id="npm-load-3"><a href="../api/load.html">load(3)</a></h2> |
||||
|
|
||||
|
<p> Load config settings</p> |
||||
|
|
||||
|
<h2 id="npm-ls-3"><a href="../api/ls.html">ls(3)</a></h2> |
||||
|
|
||||
|
<p> List installed packages</p> |
||||
|
|
||||
|
<h2 id="npm-3"><a href="../api/npm.html">npm(3)</a></h2> |
||||
|
|
||||
|
<p> node package manager</p> |
||||
|
|
||||
|
<h2 id="npm-outdated-3"><a href="../api/outdated.html">outdated(3)</a></h2> |
||||
|
|
||||
|
<p> Check for outdated packages</p> |
||||
|
|
||||
|
<h2 id="npm-owner-3"><a href="../api/owner.html">owner(3)</a></h2> |
||||
|
|
||||
|
<p> Manage package owners</p> |
||||
|
|
||||
|
<h2 id="npm-pack-3"><a href="../api/pack.html">pack(3)</a></h2> |
||||
|
|
||||
|
<p> Create a tarball from a package</p> |
||||
|
|
||||
|
<h2 id="npm-prefix-3"><a href="../api/prefix.html">prefix(3)</a></h2> |
||||
|
|
||||
|
<p> Display prefix</p> |
||||
|
|
||||
|
<h2 id="npm-prune-3"><a href="../api/prune.html">prune(3)</a></h2> |
||||
|
|
||||
|
<p> Remove extraneous packages</p> |
||||
|
|
||||
|
<h2 id="npm-publish-3"><a href="../api/publish.html">publish(3)</a></h2> |
||||
|
|
||||
|
<p> Publish a package</p> |
||||
|
|
||||
|
<h2 id="npm-rebuild-3"><a href="../api/rebuild.html">rebuild(3)</a></h2> |
||||
|
|
||||
|
<p> Rebuild a package</p> |
||||
|
|
||||
|
<h2 id="npm-restart-3"><a href="../api/restart.html">restart(3)</a></h2> |
||||
|
|
||||
|
<p> Start a package</p> |
||||
|
|
||||
|
<h2 id="npm-root-3"><a href="../api/root.html">root(3)</a></h2> |
||||
|
|
||||
|
<p> Display npm root</p> |
||||
|
|
||||
|
<h2 id="npm-run-script-3"><a href="../api/run-script.html">run-script(3)</a></h2> |
||||
|
|
||||
|
<p> Run arbitrary package scripts</p> |
||||
|
|
||||
|
<h2 id="npm-search-3"><a href="../api/search.html">search(3)</a></h2> |
||||
|
|
||||
|
<p> Search for packages</p> |
||||
|
|
||||
|
<h2 id="npm-start-3"><a href="../api/start.html">start(3)</a></h2> |
||||
|
|
||||
|
<p> Start a package</p> |
||||
|
|
||||
|
<h2 id="npm-stop-3"><a href="../api/stop.html">stop(3)</a></h2> |
||||
|
|
||||
|
<p> Stop a package</p> |
||||
|
|
||||
|
<h2 id="npm-submodule-3"><a href="../api/submodule.html">submodule(3)</a></h2> |
||||
|
|
||||
|
<p> Add a package as a git submodule</p> |
||||
|
|
||||
|
<h2 id="npm-tag-3"><a href="../api/tag.html">tag(3)</a></h2> |
||||
|
|
||||
|
<p> Tag a published version</p> |
||||
|
|
||||
|
<h2 id="npm-test-3"><a href="../api/test.html">test(3)</a></h2> |
||||
|
|
||||
|
<p> Test a package</p> |
||||
|
|
||||
|
<h2 id="npm-uninstall-3"><a href="../api/uninstall.html">uninstall(3)</a></h2> |
||||
|
|
||||
|
<p> uninstall a package programmatically</p> |
||||
|
|
||||
|
<h2 id="npm-unpublish-3"><a href="../api/unpublish.html">unpublish(3)</a></h2> |
||||
|
|
||||
|
<p> Remove a package from the registry</p> |
||||
|
|
||||
|
<h2 id="npm-update-3"><a href="../api/update.html">update(3)</a></h2> |
||||
|
|
||||
|
<p> Update a package</p> |
||||
|
|
||||
|
<h2 id="npm-version-3"><a href="../api/version.html">version(3)</a></h2> |
||||
|
|
||||
|
<p> Bump a package version</p> |
||||
|
|
||||
|
<h2 id="npm-view-3"><a href="../api/view.html">view(3)</a></h2> |
||||
|
|
||||
|
<p> View registry info</p> |
||||
|
|
||||
|
<h2 id="npm-whoami-3"><a href="../api/whoami.html">whoami(3)</a></h2> |
||||
|
|
||||
|
<p> Display npm username</p> |
||||
|
</div> |
||||
|
<p id="footer">index — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>init</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/init.html">init</a></h1> <p>Interactively create a package.json file</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm init</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This will ask you a bunch of questions, and then write a package.json for you.</p> |
||||
|
|
||||
|
<p>It attempts to make reasonable guesses about what you want things to be set to, |
||||
|
and then writes a package.json file with the options you've selected.</p> |
||||
|
|
||||
|
<p>If you already have a package.json file, it'll read that first, and default to |
||||
|
the options in there.</p> |
||||
|
|
||||
|
<p>It is strictly additive, so it does not delete options from your package.json |
||||
|
without a really good reason to do so.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,169 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>install</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/install.html">install</a></h1> <p>Install a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>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>@<tag> |
||||
|
npm install <name>@<version> |
||||
|
npm install <name>@<version range></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command installs a package, and any packages that it depends on.</p> |
||||
|
|
||||
|
<p>A <code>package</code> is:</p> |
||||
|
|
||||
|
<ul><li>a) a folder containing a program described by a package.json file</li><li>b) a gzipped tarball containing (a)</li><li>c) a url that resolves to (b)</li><li>d) a <code><name>@<version></code> that is published on the registry with (c)</li><li>e) a <code><name>@<tag></code> that points to (d)</li><li>f) a <code><name></code> that has a "latest" tag satisfying (e)</li><li>g) a <code><git remote url></code> that resolves to (b)</li></ul> |
||||
|
|
||||
|
<p>Even if you never publish your package, you can still get a lot of |
||||
|
benefits of using npm if you just want to write a node program (a), and |
||||
|
perhaps if you also want to be able to easily install it elsewhere |
||||
|
after packing it up into a tarball (b).</p> |
||||
|
|
||||
|
<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), |
||||
|
it installs the current package context (ie, the current working |
||||
|
directory) as a global package.</p></li><li><p><code>npm install <folder></code>: |
||||
|
Install a package that is sitting in a folder on the filesystem.</p></li><li><p><code>npm install <tarball file></code>: |
||||
|
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 <tarball url></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 <name></code>: |
||||
|
Do a <code><name>@<tag></code> install, where <code><tag></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><name></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 <name>@<tag></code>: |
||||
|
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 <name>@<version></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 <name>@<version range></code>: |
||||
|
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@">=0.1.0 <0.2.0"</code></pre></li><li><p><code>npm install <git remote url></code>:</p><p>Install a package by cloning a git remote url. The format of the git |
||||
|
url is:</p><pre><code><protocol>://[<user>@]<hostname><separator><path>[#<commit-ish>]</code></pre><p><code><protocol></code> is one of <code>git</code>, <code>git+ssh</code>, <code>git+http</code>, or |
||||
|
<code>git+https</code>. If no <code><commit-ish></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> |
||||
|
|
||||
|
<p>You may combine multiple arguments, and even multiple types of arguments. |
||||
|
For example:</p> |
||||
|
|
||||
|
<pre><code>npm install sax@">=0.1.0 <0.2.0" bench supervisor</code></pre> |
||||
|
|
||||
|
<p>The <code>--tag</code> argument will apply to all of the specified install targets.</p> |
||||
|
|
||||
|
<p>The <code>--force</code> argument will force npm to fetch remote resources even if a |
||||
|
local copy exists on disk.</p> |
||||
|
|
||||
|
<pre><code>npm install sax --force</code></pre> |
||||
|
|
||||
|
<p>The <code>--global</code> argument will cause npm to install the package globally |
||||
|
rather than locally. See <code><a href="../doc/global.html">global(1)</a></code>.</p> |
||||
|
|
||||
|
<p>The <code>--link</code> argument will cause npm to link global installs into the |
||||
|
local space in some cases.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/config.html">config(1)</a></code>. Many of the configuration params have some |
||||
|
effect on installation, since that's most of what npm does.</p> |
||||
|
|
||||
|
<h2 id="ALGORITHM">ALGORITHM</h2> |
||||
|
|
||||
|
<p>To install a package, npm uses the following algorithm:</p> |
||||
|
|
||||
|
<pre><code>install(where, what, family, ancestors) |
||||
|
fetch what, unpack to <where>/node_modules/<what> |
||||
|
for each dep in what.dependencies |
||||
|
resolve dep to precise version |
||||
|
for each dep@version in what.dependencies |
||||
|
not in <where>/node_modules/<what>/node_modules/* |
||||
|
and not in <family> |
||||
|
add precise version deps to <family> |
||||
|
install(<where>/node_modules/<what>, dep, family)</code></pre> |
||||
|
|
||||
|
<p>For this <code>package{dep}</code> structure: <code>A{B,C}, B{C}, C{D}</code>, |
||||
|
this algorithm produces:</p> |
||||
|
|
||||
|
<pre><code>A |
||||
|
+-- B |
||||
|
`-- C |
||||
|
`-- D</code></pre> |
||||
|
|
||||
|
<p>That is, the dependency from B to C is satisfied by the fact that A |
||||
|
already caused C to be installed at a higher level.</p> |
||||
|
|
||||
|
<p>See <a href="../doc/folders.html">folders(1)</a> for a more detailed description of the specific |
||||
|
folder structures that npm creates.</p> |
||||
|
|
||||
|
<h3 id="Limitations-of-npm-s-Install-Algorithm">Limitations of npm's Install Algorithm</h3> |
||||
|
|
||||
|
<p>There are some very rare and pathological edge-cases where a cycle can |
||||
|
cause npm to try to install a never-ending tree of packages. Here is |
||||
|
the simplest case:</p> |
||||
|
|
||||
|
<pre><code>A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ...</code></pre> |
||||
|
|
||||
|
<p>where <code>A</code> is some version of a package, and <code>A'</code> is a different version |
||||
|
of the same package. Because <code>B</code> depends on a different version of <code>A</code> |
||||
|
than the one that is already in the tree, it must install a separate |
||||
|
copy. The same is true of <code>A'</code>, which must install <code>B'</code>. Because <code>B'</code> |
||||
|
depends on the original version of <code>A</code>, which has been overridden, the |
||||
|
cycle falls into infinite regress.</p> |
||||
|
|
||||
|
<p>To avoid this situation, npm flat-out refuses to install any |
||||
|
<code>name@version</code> that is already present anywhere in the tree of package |
||||
|
folder ancestors. A more correct, but more complex, solution would be |
||||
|
to symlink the existing version into the new location. If this ever |
||||
|
affects a real use-case, it will be investigated.</p> |
||||
|
|
||||
|
<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></ul> |
||||
|
</div> |
||||
|
<p id="footer">install — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,471 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>json</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/json.html">json</a></h1> <p>Specifics of npm's package.json handling</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This document is all you need to know about what's required in your package.json |
||||
|
file. It must be actual JSON, not just a JavaScript object literal.</p> |
||||
|
|
||||
|
<p>A lot of the behavior described in this document is affected by the config |
||||
|
settings described in <code><a href="../doc/config.html">config(1)</a></code>.</p> |
||||
|
|
||||
|
<h2 id="DEFAULT-VALUES">DEFAULT VALUES</h2> |
||||
|
|
||||
|
<p>npm will default some values based on package contents.</p> |
||||
|
|
||||
|
<ul><li><p><code>"scripts": {"start": "node server.js"}</code></p><p>If there is a <code>server.js</code> file in the root of your package, then npm |
||||
|
will default the <code>start</code> command to <code>node server.js</code>.</p></li><li><p><code>"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}</code></p><p>If there is a <code>wscript</code> file in the root of your package, npm will |
||||
|
default the <code>preinstall</code> command to compile using node-waf.</p></li><li><p><code>"contributors": [...]</code></p><p>If there is an <code>AUTHORS</code> file in the root of your package, npm will |
||||
|
treat each line as a <code>Name <email> (url)</code> format, where email and url |
||||
|
are optional. Lines which start with a <code>#</code> or are blank, will be |
||||
|
ignored.</p></li></ul> |
||||
|
|
||||
|
<h2 id="name">name</h2> |
||||
|
|
||||
|
<p>The <em>most</em> important things in your package.json are the name and version fields. |
||||
|
Those are actually required, and your package won't install without |
||||
|
them. The name and version together form an identifier that is assumed |
||||
|
to be completely unique. Changes to the package should come along with |
||||
|
changes to the version.</p> |
||||
|
|
||||
|
<p>The name is what your thing is called. Some tips:</p> |
||||
|
|
||||
|
<ul><li>Don't put "js" or "node" in the name. It's assumed that it's js, since you're |
||||
|
writing a package.json file, and you can specify the engine using the "engines" |
||||
|
field. (See below.)</li><li>The name ends up being part of a URL, an argument on the command line, and a |
||||
|
folder name. Any name with non-url-safe characters will be rejected. |
||||
|
Also, it can't start with a dot or an underscore.</li><li>The name will probably be passed as an argument to require(), so it should |
||||
|
be something short, but also reasonably descriptive.</li><li>You may want to check the npm registry to see if there's something by that name |
||||
|
already, before you get too attached to it. http://registry.npmjs.org/</li></ul> |
||||
|
|
||||
|
<h2 id="version">version</h2> |
||||
|
|
||||
|
<p>The <em>most</em> important things in your package.json are the name and version fields. |
||||
|
Those are actually required, and your package won't install without |
||||
|
them. The name and version together form an identifier that is assumed |
||||
|
to be completely unique. Changes to the package should come along with |
||||
|
changes to the version.</p> |
||||
|
|
||||
|
<p>Version must be parseable by |
||||
|
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled |
||||
|
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p> |
||||
|
|
||||
|
<p>Here's how npm's semver implementation deviates from what's on semver.org:</p> |
||||
|
|
||||
|
<ul><li>Versions can start with "v"</li><li>A numeric item separated from the main three-number version by a hyphen |
||||
|
will be interpreted as a "build" number, and will <em>increase</em> the version. |
||||
|
But, if the tag is not a number separated by a hyphen, then it's treated |
||||
|
as a pre-release tag, and is <em>less than</em> the version without a tag. |
||||
|
So, <code>0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta</code></li></ul> |
||||
|
|
||||
|
<p>This is a little bit confusing to explain, but matches what you see in practice |
||||
|
when people create tags in git like "v1.2.3" and then do "git describe" to generate |
||||
|
a patch version.</p> |
||||
|
|
||||
|
<h2 id="description">description</h2> |
||||
|
|
||||
|
<p>Put a description in it. It's a string. This helps people discover your |
||||
|
package, as it's listed in <code>npm search</code>.</p> |
||||
|
|
||||
|
<h2 id="keywords">keywords</h2> |
||||
|
|
||||
|
<p>Put keywords in it. It's an array of strings. This helps people |
||||
|
discover your package as it's listed in <code>npm search</code>.</p> |
||||
|
|
||||
|
<h2 id="homepage">homepage</h2> |
||||
|
|
||||
|
<p>The url to the project homepage.</p> |
||||
|
|
||||
|
<p><strong>NOTE</strong>: This is <em>not</em> the same as "url". If you put a "url" field, |
||||
|
then the registry will think it's a redirection to your package that has |
||||
|
been published somewhere else, and spit at you.</p> |
||||
|
|
||||
|
<p>Literally. Spit. I'm so not kidding.</p> |
||||
|
|
||||
|
<h2 id="bugs">bugs</h2> |
||||
|
|
||||
|
<p>The url to your project's issue tracker and / or the email address to which |
||||
|
issues should be reported. These are helpful for people who encounter issues |
||||
|
with your package.</p> |
||||
|
|
||||
|
<p>It should look like this:</p> |
||||
|
|
||||
|
<pre><code>{ "url" : "http://github.com/owner/project/issues" |
||||
|
, "email" : "project@hostname.com" |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>You can specify either one or both values. If you want to provide only a url, |
||||
|
you can specify the value for "bugs" as a simple string instead of an object.</p> |
||||
|
|
||||
|
<p>If a url is provided, it will be used by the <code>npm bugs</code> command.</p> |
||||
|
|
||||
|
<h2 id="people-fields-author-contributors">people fields: author, contributors</h2> |
||||
|
|
||||
|
<p>The "author" is one person. "contributors" is an array of people. A "person" |
||||
|
is an object with a "name" field and optionally "url" and "email", like this:</p> |
||||
|
|
||||
|
<pre><code>{ "name" : "Barney Rubble" |
||||
|
, "email" : "b@rubble.com" |
||||
|
, "url" : "http://barnyrubble.tumblr.com/" |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>Or you can shorten that all into a single string, and npm will parse it for you:</p> |
||||
|
|
||||
|
<pre><code>"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)</code></pre> |
||||
|
|
||||
|
<p>Both email and url are optional either way.</p> |
||||
|
|
||||
|
<p>npm also sets a top-level "maintainers" field with your npm user info.</p> |
||||
|
|
||||
|
<h2 id="files">files</h2> |
||||
|
|
||||
|
<p>The "files" field is an array of files to include in your project. If |
||||
|
you name a folder in the array, then it will also include the files |
||||
|
inside that folder. (Unless they would be ignored by another rule.)</p> |
||||
|
|
||||
|
<p>You can also provide a ".npmignore" file in the root of your package, |
||||
|
which will keep files from being included, even if they would be picked |
||||
|
up by the files array. The ".npmignore" file works just like a |
||||
|
".gitignore".</p> |
||||
|
|
||||
|
<h2 id="main">main</h2> |
||||
|
|
||||
|
<p>The main field is a module ID that is the primary entry point to your program. |
||||
|
That is, if your package is named <code>foo</code>, and a user installs it, and then does |
||||
|
<code>require("foo")</code>, then your main module's exports object will be returned.</p> |
||||
|
|
||||
|
<p>This should be a module ID relative to the root of your package folder.</p> |
||||
|
|
||||
|
<p>For most modules, it makes the most sense to have a main script and often not |
||||
|
much else.</p> |
||||
|
|
||||
|
<h2 id="bin">bin</h2> |
||||
|
|
||||
|
<p>A lot of packages have one or more executable files that they'd like to |
||||
|
install into the PATH. npm makes this pretty easy (in fact, it uses this |
||||
|
feature to install the "npm" executable.)</p> |
||||
|
|
||||
|
<p>To use this, supply a <code>bin</code> field in your package.json which is a map of |
||||
|
command name to local file name. On install, npm will symlink that file into |
||||
|
<code>prefix/bin</code> for global installs, or <code>./node_modules/.bin/</code> for local |
||||
|
installs.</p> |
||||
|
|
||||
|
<p>For example, npm has this:</p> |
||||
|
|
||||
|
<pre><code>{ "bin" : { "npm" : "./cli.js" } }</code></pre> |
||||
|
|
||||
|
<p>So, when you install npm, it'll create a symlink from the <code>cli.js</code> script to |
||||
|
<code>/usr/local/bin/npm</code>.</p> |
||||
|
|
||||
|
<p>If you have a single executable, and its name should be the name |
||||
|
of the package, then you can just supply it as a string. For example:</p> |
||||
|
|
||||
|
<pre><code>{ "name": "my-program" |
||||
|
, "version": "1.2.5" |
||||
|
, "bin": "./path/to/program" }</code></pre> |
||||
|
|
||||
|
<p>would be the same as this:</p> |
||||
|
|
||||
|
<pre><code>{ "name": "my-program" |
||||
|
, "version": "1.2.5" |
||||
|
, "bin" : { "my-program" : "./path/to/program" } }</code></pre> |
||||
|
|
||||
|
<h2 id="man">man</h2> |
||||
|
|
||||
|
<p>Specify either a single file or an array of filenames to put in place for the |
||||
|
<code>man</code> program to find.</p> |
||||
|
|
||||
|
<p>If only a single file is provided, then it's installed such that it is the |
||||
|
result from <code>man <pkgname></code>, regardless of its actual filename. For example:</p> |
||||
|
|
||||
|
<pre><code>{ "name" : "foo" |
||||
|
, "version" : "1.2.3" |
||||
|
, "description" : "A packaged foo fooer for fooing foos" |
||||
|
, "main" : "foo.js" |
||||
|
, "man" : "./man/doc.1" |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>would link the <code>./man/doc.1</code> file in such that it is the target for <code>man foo</code></p> |
||||
|
|
||||
|
<p>If the filename doesn't start with the package name, then it's prefixed. |
||||
|
So, this:</p> |
||||
|
|
||||
|
<pre><code>{ "name" : "foo" |
||||
|
, "version" : "1.2.3" |
||||
|
, "description" : "A packaged foo fooer for fooing foos" |
||||
|
, "main" : "foo.js" |
||||
|
, "man" : [ "./man/foo.1", "./man/bar.1" ] |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>will create files to do <code>man foo</code> and <code>man foo-bar</code>.</p> |
||||
|
|
||||
|
<p>Man files must end with a number, and optionally a <code>.gz</code> suffix if they are |
||||
|
compressed. The number dictates which man section the file is installed into.</p> |
||||
|
|
||||
|
<pre><code>{ "name" : "foo" |
||||
|
, "version" : "1.2.3" |
||||
|
, "description" : "A packaged foo fooer for fooing foos" |
||||
|
, "main" : "foo.js" |
||||
|
, "man" : [ "./man/foo.1", "./man/foo.2" ] |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>will create entries for <code>man foo</code> and <code>man 2 foo</code></p> |
||||
|
|
||||
|
<h2 id="directories">directories</h2> |
||||
|
|
||||
|
<p>The CommonJS <a href="http://wiki.commonjs.org/wiki/Packages/1.0">Packages</a> spec details a |
||||
|
few ways that you can indicate the structure of your package using a <code>directories</code> |
||||
|
hash. If you look at <a href="http://registry.npmjs.org/npm/latest">npm's package.json</a>, |
||||
|
you'll see that it has directories for doc, lib, and man.</p> |
||||
|
|
||||
|
<p>In the future, this information may be used in other creative ways.</p> |
||||
|
|
||||
|
<h3 id="directories-lib">directories.lib</h3> |
||||
|
|
||||
|
<p>Tell people where the bulk of your library is. Nothing special is done |
||||
|
with the lib folder in any way, but it's useful meta info.</p> |
||||
|
|
||||
|
<h3 id="directories-bin">directories.bin</h3> |
||||
|
|
||||
|
<p>If you specify a "bin" directory, then all the files in that folder will |
||||
|
be used as the "bin" hash.</p> |
||||
|
|
||||
|
<p>If you have a "bin" hash already, then this has no effect.</p> |
||||
|
|
||||
|
<h3 id="directories-man">directories.man</h3> |
||||
|
|
||||
|
<p>A folder that is full of man pages. Sugar to generate a "man" array by |
||||
|
walking the folder.</p> |
||||
|
|
||||
|
<h3 id="directories-doc">directories.doc</h3> |
||||
|
|
||||
|
<p>Put markdown files in here. Eventually, these will be displayed nicely, |
||||
|
maybe, someday.</p> |
||||
|
|
||||
|
<h3 id="directories-example">directories.example</h3> |
||||
|
|
||||
|
<p>Put example scripts in here. Someday, it might be exposed in some clever way.</p> |
||||
|
|
||||
|
<h2 id="repository">repository</h2> |
||||
|
|
||||
|
<p>Specify the place where your code lives. This is helpful for people who |
||||
|
want to contribute. If the git repo is on github, then the <code>npm docs</code> |
||||
|
command will be able to find you.</p> |
||||
|
|
||||
|
<p>Do it like this:</p> |
||||
|
|
||||
|
<pre><code>"repository" : |
||||
|
{ "type" : "git" |
||||
|
, "url" : "http://github.com/isaacs/npm.git" |
||||
|
} |
||||
|
|
||||
|
"repository" : |
||||
|
{ "type" : "svn" |
||||
|
, "url" : "http://v8.googlecode.com/svn/trunk/" |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>The URL should be a publicly available (perhaps read-only) url that can be handed |
||||
|
directly to a VCS program without any modification. It should not be a url to an |
||||
|
html project page that you put in your browser. It's for computers.</p> |
||||
|
|
||||
|
<h2 id="scripts">scripts</h2> |
||||
|
|
||||
|
<p>The "scripts" member is an object hash of script commands that are run |
||||
|
at various times in the lifecycle of your package. The key is the lifecycle |
||||
|
event, and the value is the command to run at that point.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/scripts.html">scripts(1)</a></code> to find out more about writing package scripts.</p> |
||||
|
|
||||
|
<h2 id="config">config</h2> |
||||
|
|
||||
|
<p>A "config" hash can be used to set configuration |
||||
|
parameters used in package scripts that persist across upgrades. For |
||||
|
instance, if a package had the following:</p> |
||||
|
|
||||
|
<pre><code>{ "name" : "foo" |
||||
|
, "config" : { "port" : "8080" } }</code></pre> |
||||
|
|
||||
|
<p>and then had a "start" command that then referenced the |
||||
|
<code>npm_package_config_port</code> environment variable, then the user could |
||||
|
override that by doing <code>npm config set foo:port 8001</code>.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/config.html">config(1)</a></code> and <code><a href="../doc/scripts.html">scripts(1)</a></code> for more on package |
||||
|
configs.</p> |
||||
|
|
||||
|
<h2 id="dependencies">dependencies</h2> |
||||
|
|
||||
|
<p>Dependencies are specified with a simple hash of package name to version |
||||
|
range. The version range is EITHER a string which has one or more |
||||
|
space-separated descriptors, OR a range like "fromVersion - toVersion"</p> |
||||
|
|
||||
|
<p><strong>Please do not put test harnesses in your <code>dependencies</code> hash.</strong> See |
||||
|
<code>devDependencies</code>, below.</p> |
||||
|
|
||||
|
<p>Version range descriptors may be any of the following styles, where "version" |
||||
|
is a semver compatible version identifier.</p> |
||||
|
|
||||
|
<ul><li><code>version</code> Must match <code>version</code> exactly</li><li><code>=version</code> Same as just <code>version</code></li><li><code>>version</code> Must be greater than <code>version</code></li><li><code>>=version</code> etc</li><li><code><version</code></li><li><code><=version</code></li><li><code>~version</code> See 'Tilde Version Ranges' below</li><li><code>1.2.x</code> See 'X Version Ranges' below</li><li><code>http://...</code> See 'URLs as Dependencies' below</li><li><code>*</code> Matches any version</li><li><code>""</code> (just an empty string) Same as <code>*</code></li><li><code>version1 - version2</code> Same as <code>>=version1 <=version2</code>.</li><li><code>range1 || range2</code> Passes if either range1 or range2 are satisfied.</li></ul> |
||||
|
|
||||
|
<p>For example, these are all valid:</p> |
||||
|
|
||||
|
<pre><code>{ "dependencies" : |
||||
|
{ "foo" : "1.0.0 - 2.9999.9999" |
||||
|
, "bar" : ">=1.0.2 <2.1.2" |
||||
|
, "baz" : ">1.0.2 <=2.3.4" |
||||
|
, "boo" : "2.0.1" |
||||
|
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" |
||||
|
, "asd" : "http://asdf.com/asdf.tar.gz" |
||||
|
, "til" : "~1.2" |
||||
|
, "elf" : "~1.2.3" |
||||
|
, "two" : "2.x" |
||||
|
, "thr" : "3.3.x" |
||||
|
} |
||||
|
}</code></pre> |
||||
|
|
||||
|
<h3 id="Tilde-Version-Ranges">Tilde Version Ranges</h3> |
||||
|
|
||||
|
<p>A range specifier starting with a tilde <code>~</code> character is matched against |
||||
|
a version in the following fashion.</p> |
||||
|
|
||||
|
<ul><li>The version must be at least as high as the range.</li><li>The version must be less than the next major revision above the range.</li></ul> |
||||
|
|
||||
|
<p>For example, the following are equivalent:</p> |
||||
|
|
||||
|
<ul><li><code>"~1.2.3" = ">=1.2.3 <1.3.0"</code></li><li><code>"~1.2" = ">=1.2.0 <2.0.0"</code></li><li><code>"~1" = ">=1.0.0 <2.0.0"</code></li></ul> |
||||
|
|
||||
|
<h3 id="X-Version-Ranges">X Version Ranges</h3> |
||||
|
|
||||
|
<p>An "x" in a version range specifies that the version number must start |
||||
|
with the supplied digits, but any digit may be used in place of the x.</p> |
||||
|
|
||||
|
<p>The following are equivalent:</p> |
||||
|
|
||||
|
<ul><li><code>"1.2.x" = ">=1.2.0 <1.3.0"</code></li><li><code>"1.x.x" = ">=1.0.0 <2.0.0"</code></li><li><code>"1.2" = "1.2.x"</code></li><li><code>"1.x" = "1.x.x"</code></li><li><code>"1" = "1.x.x"</code></li></ul> |
||||
|
|
||||
|
<p>You may not supply a comparator with a version containing an x. Any |
||||
|
digits after the first "x" are ignored.</p> |
||||
|
|
||||
|
<h3 id="URLs-as-Dependencies">URLs as Dependencies</h3> |
||||
|
|
||||
|
<p>Starting with npm version 0.2.14, you may specify a tarball URL in place |
||||
|
of a version range.</p> |
||||
|
|
||||
|
<p>This tarball will be downloaded and installed locally to your package at |
||||
|
install time.</p> |
||||
|
|
||||
|
<h2 id="devDependencies">devDependencies</h2> |
||||
|
|
||||
|
<p>If someone is planning on downloading and using your module in their |
||||
|
program, then they probably don't want or need to download and build |
||||
|
the external test or documentation framework that you use.</p> |
||||
|
|
||||
|
<p>In this case, it's best to list these additional items in a |
||||
|
<code>devDependencies</code> hash.</p> |
||||
|
|
||||
|
<p>These things will be installed whenever the <code>--dev</code> configuration flag |
||||
|
is set. This flag is set automatically when doing <code>npm link</code>, and can |
||||
|
be managed like any other npm configuration param. See <code><a href="../doc/config.html">config(1)</a></code> |
||||
|
for more on the topic.</p> |
||||
|
|
||||
|
<h2 id="bundledDependencies">bundledDependencies</h2> |
||||
|
|
||||
|
<p>Array of package names that will be bundled when publishing the package.</p> |
||||
|
|
||||
|
<p>If this is spelled <code>"bundleDependencies"</code>, then that is also honorable.</p> |
||||
|
|
||||
|
<h2 id="engines">engines</h2> |
||||
|
|
||||
|
<p>You can specify the version of |
||||
|
node that your stuff works on:</p> |
||||
|
|
||||
|
<pre><code>{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }</code></pre> |
||||
|
|
||||
|
<p>And, like with dependencies, if you don't specify the version (or if you |
||||
|
specify "*" as the version), then any version of node will do.</p> |
||||
|
|
||||
|
<p>If you specify an "engines" field, then npm will require that "node" be |
||||
|
somewhere on that list. If "engines" is omitted, then npm will just assume |
||||
|
that it works on node.</p> |
||||
|
|
||||
|
<p>You can also use the "engines" field to specify which versions of npm |
||||
|
are capable of properly installing your program. For example:</p> |
||||
|
|
||||
|
<pre><code>{ "engines" : { "npm" : "~1.0.20" } }</code></pre> |
||||
|
|
||||
|
<h2 id="preferGlobal">preferGlobal</h2> |
||||
|
|
||||
|
<p>If your package is primarily a command-line application that should be |
||||
|
installed globally, then set this value to <code>true</code> to provide a warning |
||||
|
if it is installed locally.</p> |
||||
|
|
||||
|
<p>It doesn't actually prevent users from installing it locally, but it |
||||
|
does help prevent some confusion if it doesn't work as expected.</p> |
||||
|
|
||||
|
<h2 id="private">private</h2> |
||||
|
|
||||
|
<p>If you set <code>"private": true</code> in your package.json, then npm will refuse |
||||
|
to publish it.</p> |
||||
|
|
||||
|
<p>This is a way to prevent accidental publication of private repositories. |
||||
|
If you would like to ensure that a given package is only ever published |
||||
|
to a speciic registry (for example, an internal registry), |
||||
|
then use the <code>publishConfig</code> hash described below |
||||
|
to override the <code>registry</code> config param at publish-time.</p> |
||||
|
|
||||
|
<h2 id="publishConfig">publishConfig</h2> |
||||
|
|
||||
|
<p>This is a set of config values that will be used at publish-time. It's |
||||
|
especially handy if you want to set the tag or registry, so that you can |
||||
|
ensure that a given package is not tagged with "latest" or published to |
||||
|
the global public registry by default.</p> |
||||
|
|
||||
|
<p>Any config values can be overridden, but of course only "tag" and |
||||
|
"registry" probably matter for the purposes of publishing.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/config.html">config(1)</a></code> to see the list of config options that can be |
||||
|
overridden.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,93 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>link</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">link — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,87 @@ |
|||||
|
<!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="../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">list — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,93 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,87 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,170 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>npm</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/npm.html">npm</a></h1> <p>node package manager</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm <command> [args]</code></pre> |
||||
|
|
||||
|
<h2 id="VERSION">VERSION</h2> |
||||
|
|
||||
|
<p>1.1.0-alpha-2</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>npm is the package manager for the Node JavaScript platform. It puts |
||||
|
modules in place so that node can find them, and manages dependency |
||||
|
conflicts intelligently.</p> |
||||
|
|
||||
|
<p>It is extremely configurable to support a wide variety of use cases. |
||||
|
Most commonly, it is used to publish, discover, install, and develop node |
||||
|
programs.</p> |
||||
|
|
||||
|
<p>Run <code>npm help</code> to get a list of available commands.</p> |
||||
|
|
||||
|
<h2 id="INTRODUCTION">INTRODUCTION</h2> |
||||
|
|
||||
|
<p>You probably got npm because you want to install stuff.</p> |
||||
|
|
||||
|
<p>Use <code>npm install blerg</code> to install the latest version of "blerg". Check out |
||||
|
<code><a href="../doc/install.html">install(1)</a></code> for more info. It can do a lot of stuff.</p> |
||||
|
|
||||
|
<p>Use the <code>npm search</code> command to show everything that's available. |
||||
|
Use <code>npm ls</code> to show everything you've installed.</p> |
||||
|
|
||||
|
<h2 id="DIRECTORIES">DIRECTORIES</h2> |
||||
|
|
||||
|
<p>See <code><a href="../doc/folders.html">folders(1)</a></code> to learn about where npm puts stuff.</p> |
||||
|
|
||||
|
<p>In particular, npm has two modes of operation:</p> |
||||
|
|
||||
|
<ul><li>global mode:<br />npm installs packages into the install prefix at |
||||
|
<code>prefix/lib/node_modules</code> and bins are installed in <code>prefix/bin</code>.</li><li>local mode:<br />npm installs packages into the current project directory, which |
||||
|
defaults to the current working directory. Packages are installed to |
||||
|
<code>./node_modules</code>, and bins are installed to <code>./node_modules/.bin</code>.</li></ul> |
||||
|
|
||||
|
<p>Local mode is the default. Use <code>--global</code> or <code>-g</code> on any command to |
||||
|
operate in global mode instead.</p> |
||||
|
|
||||
|
<h2 id="DEVELOPER-USAGE">DEVELOPER USAGE</h2> |
||||
|
|
||||
|
<p>If you're using npm to develop and publish your code, check out the |
||||
|
following help topics:</p> |
||||
|
|
||||
|
<ul><li>json: |
||||
|
Make a package.json file. See <code><a href="../doc/json.html">json(1)</a></code>.</li><li>link: |
||||
|
For linking your current working code into Node's path, so that you |
||||
|
don't have to reinstall every time you make a change. Use |
||||
|
<code>npm link</code> to do this.</li><li>install: |
||||
|
It's a good idea to install things if you don't need the symbolic link. |
||||
|
Especially, installing other peoples code from the registry is done via |
||||
|
<code>npm install</code></li><li>adduser: |
||||
|
Create an account or log in. Creditials are stored in the |
||||
|
user config file.</li><li>publish: |
||||
|
Use the <code>npm publish</code> command to upload your code to the registry.</li></ul> |
||||
|
|
||||
|
<h2 id="CONFIGURATION">CONFIGURATION</h2> |
||||
|
|
||||
|
<p>npm is extremely configurable. It reads its configuration options from |
||||
|
5 places.</p> |
||||
|
|
||||
|
<ul><li>Command line switches:<br />Set a config with <code>--key val</code>. All keys take a value, even if they |
||||
|
are booleans (the config parser doesn't know what the options are at |
||||
|
the time of parsing.) If no value is provided, then the option is set |
||||
|
to boolean <code>true</code>.</li><li>Environment Variables:<br />Set any config by prefixing the name in an environment variable with |
||||
|
<code>npm_config_</code>. For example, <code>export npm_config_key=val</code>.</li><li>User Configs:<br />The file at $HOME/.npmrc is an ini-formatted list of configs. If |
||||
|
present, it is parsed. If the <code>userconfig</code> option is set in the cli |
||||
|
or env, then that will be used instead.</li><li>Global Configs:<br />The file found at ../etc/npmrc (from the node executable, by default |
||||
|
this resolves to /usr/local/etc/npmrc) will be parsed if it is found. |
||||
|
If the <code>globalconfig</code> option is set in the cli, env, or user config, |
||||
|
then that file is parsed instead.</li><li>Defaults:<br />npm's default configuration options are defined in |
||||
|
lib/utils/config-defs.js. These must not be changed.</li></ul> |
||||
|
|
||||
|
<p>See <code><a href="../doc/config.html">config(1)</a></code> for much much more information.</p> |
||||
|
|
||||
|
<h2 id="CONTRIBUTIONS">CONTRIBUTIONS</h2> |
||||
|
|
||||
|
<p>Patches welcome!</p> |
||||
|
|
||||
|
<ul><li>code: |
||||
|
Read through <code><a href="../doc/coding-style.html">coding-style(1)</a></code> if you plan to submit code. |
||||
|
You don't have to agree with it, but you do have to follow it.</li><li>docs: |
||||
|
If you find an error in the documentation, edit the appropriate markdown |
||||
|
file in the "doc" folder. (Don't worry about generating the man page.)</li></ul> |
||||
|
|
||||
|
<p>Contributors are listed in npm's <code>package.json</code> file. You can view them |
||||
|
easily by doing <code>npm view npm contributors</code>.</p> |
||||
|
|
||||
|
<p>If you would like to contribute, but don't know what to work on, check |
||||
|
the issues list or ask on the mailing list.</p> |
||||
|
|
||||
|
<ul><li><a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li><li><a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li></ul> |
||||
|
|
||||
|
<h2 id="BUGS">BUGS</h2> |
||||
|
|
||||
|
<p>When you find issues, please report them:</p> |
||||
|
|
||||
|
<ul><li>web: |
||||
|
<a href="http://github.com/isaacs/npm/issues">http://github.com/isaacs/npm/issues</a></li><li>email: |
||||
|
<a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a></li></ul> |
||||
|
|
||||
|
<p>Be sure to include <em>all</em> of the output from the npm command that didn't work |
||||
|
as expected. The <code>npm-debug.log</code> file is also helpful to provide.</p> |
||||
|
|
||||
|
<p>You can also look for isaacs in #node.js on irc://irc.freenode.net. He |
||||
|
will no doubt tell you to put the output in a gist or email.</p> |
||||
|
|
||||
|
<h2 id="HISTORY">HISTORY</h2> |
||||
|
|
||||
|
<p>See <a href="../doc/changelog.html">changelog(1)</a></p> |
||||
|
|
||||
|
<h2 id="AUTHOR">AUTHOR</h2> |
||||
|
|
||||
|
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> :: |
||||
|
<a href="https://github.com/isaacs/">isaacs</a> :: |
||||
|
<a href="http://twitter.com/izs">@izs</a> :: |
||||
|
<a href="mailto:i@izs.me">i@izs.me</a></p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,56 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>outdated</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/outdated.html">outdated</a></h1> <p>Check for outdated packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm outdated [<name> [<name> ...]]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command will check the registry to see if any (or, specific) installed |
||||
|
packages are currently outdated.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,69 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>owner</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">owner — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>pack</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/pack.html">pack</a></h1> <p>Create a tarball from a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm pack [<pkg> [<pkg> ...]]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>For anything that's installable (that is, a package folder, tarball, |
||||
|
tarball url, name@tag, name@version, or name), this command will fetch |
||||
|
it to the cache, and then copy the tarball to the current working |
||||
|
directory as <code><name>-<version>.tgz</code>, and then write the filenames out to |
||||
|
stdout.</p> |
||||
|
|
||||
|
<p>If the same package is specified multiple times, then the file will be |
||||
|
overwritten the second time.</p> |
||||
|
|
||||
|
<p>If no arguments are supplied, then npm packs the current package folder.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,55 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>prefix</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/prefix.html">prefix</a></h1> <p>Display prefix</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm prefix</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the prefix to standard out.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>prune</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/prune.html">prune</a></h1> <p>Remove extraneous packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm prune [<name> [<name ...]]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command removes "extraneous" packages. If a package name is |
||||
|
provided, then only packages matching one of the supplied names are |
||||
|
removed.</p> |
||||
|
|
||||
|
<p>Extraneous packages are packages that are not listed on the parent |
||||
|
package's dependencies list.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,64 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>publish</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/publish.html">publish</a></h1> <p>Publish a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm publish <tarball> |
||||
|
npm publish <folder></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Publishes a package to the registry so that it can be installed by name.</p> |
||||
|
|
||||
|
<ul><li><p><code><folder></code>: |
||||
|
A folder containing a package.json file</p></li><li><p><code><tarball></code>: |
||||
|
A url or file path to a gzipped tar archive containing a single folder |
||||
|
with a package.json file inside.</p></li></ul> |
||||
|
|
||||
|
<p>Fails if the package name and version combination already exists in |
||||
|
the registry. Overwrites when the "--force" flag is set.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,60 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>rebuild</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/rebuild.html">rebuild</a></h1> <p>Rebuild a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm rebuild [<name> [<name> ...]]</code></pre> |
||||
|
|
||||
|
<ul><li><code><name></code>: |
||||
|
The package to rebuild</li></ul> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This command runs the <code>npm build</code> command on the matched folders. This is useful |
||||
|
when you install a new version of node, and must recompile all your C++ addons with |
||||
|
the new binary.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,132 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>registry</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/registry.html">registry</a></h1> <p>The JavaScript Package Registry</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>To resolve packages by name and version, npm talks to a registry website |
||||
|
that implements the CommonJS Package Registry specification for reading |
||||
|
package info.</p> |
||||
|
|
||||
|
<p>Additionally, npm's package registry implementation supports several |
||||
|
write APIs as well, to allow for publishing packages and managing user |
||||
|
account information.</p> |
||||
|
|
||||
|
<p>The official public npm registry is at <a href="http://registry.npmjs.org/">http://registry.npmjs.org/</a>. It |
||||
|
is powered by a CouchDB database at |
||||
|
<a href="http://isaacs.couchone.com/registry">http://isaacs.couchone.com/registry</a>. The code for the couchapp is |
||||
|
available at <a href="http://github.com/isaacs/npmjs.org">http://github.com/isaacs/npmjs.org</a>. npm user accounts |
||||
|
are CouchDB users, stored in the <a href="http://isaacs.couchone.com/_users">http://isaacs.couchone.com/_users</a> |
||||
|
database.</p> |
||||
|
|
||||
|
<p>The registry URL is supplied by the <code>registry</code> config parameter. See |
||||
|
<code><a href="../doc/config.html">config(1)</a></code> for more on managing npm's configuration.</p> |
||||
|
|
||||
|
<h2 id="Can-I-run-my-own-private-registry">Can I run my own private registry?</h2> |
||||
|
|
||||
|
<p>Yes!</p> |
||||
|
|
||||
|
<p>The easiest way is to replicate the couch database, and use the same (or |
||||
|
similar) design doc to implement the APIs.</p> |
||||
|
|
||||
|
<p>If you set up continuous replication from the official CouchDB, and then |
||||
|
set your internal CouchDB as the registry config, then you'll be able |
||||
|
to read any published packages, in addition to your private ones, and by |
||||
|
default will only publish internally. If you then want to publish a |
||||
|
package for the whole world to see, you can simply override the |
||||
|
<code>--registry</code> config for that command.</p> |
||||
|
|
||||
|
<h2 id="I-don-t-want-my-package-published-in-the-official-registry-It-s-private">I don't want my package published in the official registry. It's private.</h2> |
||||
|
|
||||
|
<p>Set <code>"private": true</code> in your package.json to prevent it from being |
||||
|
published at all, or |
||||
|
<code>"publishConfig":{"registry":"http://my-internal-registry.local"}</code> |
||||
|
to force it to be published only to your internal registry.</p> |
||||
|
|
||||
|
<p>See <code><a href="../doc/json.html">json(1)</a></code> for more info on what goes in the package.json file.</p> |
||||
|
|
||||
|
<h2 id="Will-you-replicate-from-my-registry-into-the-public-one">Will you replicate from my registry into the public one?</h2> |
||||
|
|
||||
|
<p>No. If you want things to be public, then publish them into the public |
||||
|
registry using npm. What little security there is would be for nought |
||||
|
otherwise.</p> |
||||
|
|
||||
|
<h2 id="Do-I-have-to-use-couchdb-to-build-a-registry-that-npm-can-talk-to">Do I have to use couchdb to build a registry that npm can talk to?</h2> |
||||
|
|
||||
|
<p>No, but it's way easier.</p> |
||||
|
|
||||
|
<h2 id="I-published-something-elsewhere-and-want-to-tell-the-npm-registry-about-it">I published something elsewhere, and want to tell the npm registry about it.</h2> |
||||
|
|
||||
|
<p>That is supported, but not using the npm client. You'll have to get |
||||
|
your hands dirty and do some HTTP. The request looks something like |
||||
|
this:</p> |
||||
|
|
||||
|
<pre><code>PUT /my-foreign-package |
||||
|
content-type:application/json |
||||
|
accept:application/json |
||||
|
authorization:Basic $base_64_encoded |
||||
|
|
||||
|
{ "name":"my-foreign-package" |
||||
|
, "maintainers":["owner","usernames"] |
||||
|
, "description":"A package that is hosted elsewhere" |
||||
|
, "keywords":["nih","my cheese smells the best"] |
||||
|
, "url":"http://my-different-registry.com/blerg/my-local-package" |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>(Keywords and description are optional, but recommended. Name, |
||||
|
maintainers, and url are required.)</p> |
||||
|
|
||||
|
<p>Then, when a user tries to install "my-foreign-package", it'll redirect |
||||
|
to your registry. If that doesn't resolve to a valid package entry, |
||||
|
then it'll fail, so please make sure that you understand the spec, and |
||||
|
ask for help on the <a href="mailto:npm-@googlegroups.com">npm-@googlegroups.com</a> mailing list.</p> |
||||
|
|
||||
|
<h2 id="Is-there-a-website-or-something-to-see-package-docs-and-such">Is there a website or something to see package docs and such?</h2> |
||||
|
|
||||
|
<p>No, but such a thing is planned, and a tiny bit developed.</p> |
||||
|
|
||||
|
<p>Stay tuned!</p> |
||||
|
|
||||
|
<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></ul> |
||||
|
</div> |
||||
|
<p id="footer">registry — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,93 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>removing-npm</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/removal.html">removal</a></h1> <p>Cleaning the Slate</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<p>So sad to see you go.</p> |
||||
|
|
||||
|
<pre><code>sudo npm uninstall npm -g</code></pre> |
||||
|
|
||||
|
<p>Or, if that fails, get the npm source code, and do:</p> |
||||
|
|
||||
|
<pre><code>sudo make uninstall</code></pre> |
||||
|
|
||||
|
<h2 id="More-Severe-Uninstalling">More Severe Uninstalling</h2> |
||||
|
|
||||
|
<p>Usually, the above instructions are sufficient. That will remove |
||||
|
npm, but leave behind anything you've installed.</p> |
||||
|
|
||||
|
<p>If that doesn't work, or if you require more drastic measures, |
||||
|
continue reading.</p> |
||||
|
|
||||
|
<p>Note that this is only necessary for globally-installed packages. Local |
||||
|
installs are completely contained within a project's <code>node_modules</code> |
||||
|
folder. Delete that folder, and everything is gone (unless a package's |
||||
|
install script is particularly ill-behaved).</p> |
||||
|
|
||||
|
<p>This assumes that you installed node and npm in the default place. If |
||||
|
you configured node with a different <code>--prefix</code>, or installed npm with a |
||||
|
different prefix setting, then adjust the paths accordingly, replacing |
||||
|
<code>/usr/local</code> with your install prefix.</p> |
||||
|
|
||||
|
<p>To remove everything npm-related manually:</p> |
||||
|
|
||||
|
<pre><code>rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*</code></pre> |
||||
|
|
||||
|
<p>If you installed things <em>with</em> npm, then your best bet is to uninstall |
||||
|
them with npm first, and then install them again once you have a |
||||
|
proper install. This can help find any symlinks that are lying |
||||
|
around:</p> |
||||
|
|
||||
|
<pre><code>ls -laF /usr/local/{lib/node{,/.npm},bin,share/man} | grep npm</code></pre> |
||||
|
|
||||
|
<p>Prior to version 0.3, npm used shim files for executables and node |
||||
|
modules. To track those down, you can do the following:</p> |
||||
|
|
||||
|
<pre><code>find /usr/local/{lib/node,bin} -exec grep -l npm \{\} \; ;</code></pre> |
||||
|
|
||||
|
<p>(This is also in the <a href="../doc/README.html">README</a> file.)</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,59 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>restart</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/restart.html">restart</a></h1> <p>Start a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm restart <name></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "restart" script, if one was provided. |
||||
|
Otherwise it runs package's "stop" script, if one was provided, and then |
||||
|
the "start" script.</p> |
||||
|
|
||||
|
<p>If no version is specified, then it restarts the "active" version.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,57 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,55 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>root</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/root.html">root</a></h1> <p>Display npm root</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm root</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>Print the effective <code>node_modules</code> folder to standard out.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,58 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>run-script</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/run-script.html">run-script</a></h1> <p>Run arbitrary package scripts</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm run-script <script> <name></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs an arbitrary command from a package's "scripts" object.</p> |
||||
|
|
||||
|
<p>It is used by the test, start, restart, and stop commands, but can be |
||||
|
called directly, as well.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,199 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>scripts</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/scripts.html">scripts</a></h1> <p>How npm handles the "scripts" field</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>npm supports the "scripts" member of the package.json script, for the |
||||
|
following scripts:</p> |
||||
|
|
||||
|
<ul><li>preinstall: |
||||
|
Run BEFORE the package is installed</li><li>install, postinstall: |
||||
|
Run AFTER the package is installed.</li><li>preuninstall, uninstall: |
||||
|
Run BEFORE the package is uninstalled.</li><li>postuninstall: |
||||
|
Run AFTER the package is uninstalled.</li><li>preupdate: |
||||
|
Run BEFORE the package is updated with the update command.</li><li>update, postupdate: |
||||
|
Run AFTER the package is updated with the update command.</li><li>prepublish: |
||||
|
Run BEFORE the package is published.</li><li>publish, postpublish: |
||||
|
Run AFTER the package is published.</li><li>pretest, test, posttest: |
||||
|
Run by the <code>npm test</code> command.</li><li>prestop, stop, poststop: |
||||
|
Run by the <code>npm stop</code> command.</li><li>prestart, start, poststart: |
||||
|
Run by the <code>npm start</code> command.</li><li>prerestart, restart, postrestart: |
||||
|
Run by the <code>npm restart</code> command. Note: <code>npm restart</code> will run the |
||||
|
stop and start scripts if no <code>restart</code> script is provided.</li></ul> |
||||
|
|
||||
|
<p>Additionally, arbitrary scrips can be run by doing |
||||
|
<code>npm run-script <stage> <pkg></code>.</p> |
||||
|
|
||||
|
<h2 id="DEFAULT-VALUES">DEFAULT VALUES</h2> |
||||
|
|
||||
|
<p>npm will default some script values based on package contents.</p> |
||||
|
|
||||
|
<ul><li><p><code>"start": "node server.js"</code>:</p><p>If there is a <code>server.js</code> file in the root of your package, then npm |
||||
|
will default the <code>start</code> command to <code>node server.js</code>.</p></li><li><p><code>"preinstall": "node-waf clean || true; node-waf configure build"</code>:</p><p>If there is a <code>wscript</code> file in the root of your package, npm will |
||||
|
default the <code>preinstall</code> command to compile using node-waf.</p></li></ul> |
||||
|
|
||||
|
<h2 id="USER">USER</h2> |
||||
|
|
||||
|
<p>If npm was invoked with root privileges, then it will change the uid to |
||||
|
the user account or uid specified by the <code>user</code> config, which defaults |
||||
|
to <code>nobody</code>. Set the <code>unsafe-perm</code> flag to run scripts with root |
||||
|
privileges.</p> |
||||
|
|
||||
|
<h2 id="ENVIRONMENT">ENVIRONMENT</h2> |
||||
|
|
||||
|
<p>Package scripts run in an environment where many pieces of information are |
||||
|
made available regarding the setup of npm and the current state of the |
||||
|
process.</p> |
||||
|
|
||||
|
<h3 id="package-json-vars">package.json vars</h3> |
||||
|
|
||||
|
<p>The package.json fields are tacked onto the <code>npm_package_</code> prefix. So, for |
||||
|
instance, if you had <code>{"name":"foo", "version":"1.2.5"}</code> in your package.json |
||||
|
file, then your package scripts would have the <code>npm_package_name</code> environment |
||||
|
variable set to "foo", and the <code>npm_package_version</code> set to "1.2.5"</p> |
||||
|
|
||||
|
<h3 id="configuration">configuration</h3> |
||||
|
|
||||
|
<p>Configuration parameters are put in the environment with the <code>npm_config_</code> |
||||
|
prefix. For instance, you can view the effective <code>root</code> config by checking the |
||||
|
<code>npm_config_root</code> environment variable.</p> |
||||
|
|
||||
|
<h3 id="Special-package-json-config-hash">Special: package.json "config" hash</h3> |
||||
|
|
||||
|
<p>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> |
||||
|
|
||||
|
<h3 id="current-lifecycle-event">current lifecycle event</h3> |
||||
|
|
||||
|
<p>Lastly, the <code>npm_lifecycle_event</code> environment variable is set to whichever |
||||
|
stage of the cycle is being executed. So, you could have a single script used |
||||
|
for different parts of the process which switches based on what's currently |
||||
|
happening.</p> |
||||
|
|
||||
|
<p>Objects are flattened following this format, so if you had |
||||
|
<code>{"scripts":{"install":"foo.js"}}</code> in your package.json, then you'd see this |
||||
|
in the script:</p> |
||||
|
|
||||
|
<pre><code>process.env.npm_package_scripts_install === "foo.js"</code></pre> |
||||
|
|
||||
|
<h2 id="EXAMPLES">EXAMPLES</h2> |
||||
|
|
||||
|
<p>For example, if your package.json contains this:</p> |
||||
|
|
||||
|
<pre><code>{ "scripts" : |
||||
|
{ "install" : "scripts/install.js" |
||||
|
, "postinstall" : "scripts/install.js" |
||||
|
, "uninstall" : "scripts/uninstall.js" |
||||
|
} |
||||
|
}</code></pre> |
||||
|
|
||||
|
<p>then the <code>scripts/install.js</code> will be called for the install, post-install, |
||||
|
stages of the lifecycle, and the <code>scripts/uninstall.js</code> would be |
||||
|
called when the package is uninstalled. Since <code>scripts/install.js</code> is running |
||||
|
for three different phases, it would be wise in this case to look at the |
||||
|
<code>npm_lifecycle_event</code> environment variable.</p> |
||||
|
|
||||
|
<p>If you want to run a make command, you can do so. This works just fine:</p> |
||||
|
|
||||
|
<pre><code>{ "scripts" : |
||||
|
{ "preinstall" : "./configure" |
||||
|
, "install" : "make && make install" |
||||
|
, "test" : "make test" |
||||
|
} |
||||
|
}</code></pre> |
||||
|
|
||||
|
<h2 id="EXITING">EXITING</h2> |
||||
|
|
||||
|
<p>Scripts are run by passing the line as a script argument to <code>sh</code>.</p> |
||||
|
|
||||
|
<p>If the script exits with a code other than 0, then this will abort the |
||||
|
process.</p> |
||||
|
|
||||
|
<p>Note that these script files don't have to be nodejs or even javascript |
||||
|
programs. They just have to be some kind of executable file.</p> |
||||
|
|
||||
|
<h2 id="HOOK-SCRIPTS">HOOK SCRIPTS</h2> |
||||
|
|
||||
|
<p>If you want to run a specific script at a specific lifecycle event for ALL |
||||
|
packages, then you can use a hook script.</p> |
||||
|
|
||||
|
<p>Place an executable file at <code>node_modules/.hooks/{eventname}</code>, and it'll get |
||||
|
run for all packages when they are going through that point in the package |
||||
|
lifecycle for any packages installed in that root.</p> |
||||
|
|
||||
|
<p>Hook scripts are run exactly the same way as package.json scripts. That is, |
||||
|
they are in a separate child process, with the env described above.</p> |
||||
|
|
||||
|
<h2 id="BEST-PRACTICES">BEST PRACTICES</h2> |
||||
|
|
||||
|
<ul><li>Don't exit with a non-zero error code unless you <em>really</em> mean it. |
||||
|
Except for uninstall scripts, this will cause the npm action |
||||
|
to fail, and potentially be rolled back. If the failure is minor or |
||||
|
only will prevent some optional features, then it's better to just |
||||
|
print a warning and exit successfully.</li><li>Try not to use scripts to do what npm can do for you. Read through |
||||
|
<code><a href="../doc/json.html">json(1)</a></code> to see all the things that you can specify and enable |
||||
|
by simply describing your package appropriately. In general, this will |
||||
|
lead to a more robust and consistent state.</li><li>Inspect the env to determine where to put things. For instance, if |
||||
|
the <code>npm_config_binroot</code> environ is set to <code>/home/user/bin</code>, then don't |
||||
|
try to install executables into <code>/usr/local/bin</code>. The user probably |
||||
|
set it up that way for a reason.</li><li>Don't prefix your script commands with "sudo". If root permissions are |
||||
|
required for some reason, then it'll fail with that error, and the user |
||||
|
will sudo the npm command in question.</li></ul> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,75 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>search</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">search — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,139 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>semver</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/semver.html">semver</a></h1> <p>The semantic versioner for npm</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<p>The npm semantic versioning utility.</p> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>As a node module:</p> |
||||
|
|
||||
|
<pre><code>$ npm install semver |
||||
|
|
||||
|
semver.valid('1.2.3') // true |
||||
|
semver.valid('a.b.c') // false |
||||
|
semver.clean(' =v1.2.3 ') // '1.2.3' |
||||
|
semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true |
||||
|
semver.gt('1.2.3', '9.8.7') // false |
||||
|
semver.lt('1.2.3', '9.8.7') // true</code></pre> |
||||
|
|
||||
|
<p>As a command-line utility:</p> |
||||
|
|
||||
|
<pre><code>$ npm install semver -g |
||||
|
$ semver -h |
||||
|
|
||||
|
Usage: semver -v <version> [-r <range>] |
||||
|
Test if version(s) satisfy the supplied range(s), |
||||
|
and sort them. |
||||
|
|
||||
|
Multiple versions or ranges may be supplied. |
||||
|
|
||||
|
Program exits successfully if any valid version satisfies |
||||
|
all supplied ranges, and prints all satisfying versions. |
||||
|
|
||||
|
If no versions are valid, or ranges are not satisfied, |
||||
|
then exits failure. |
||||
|
|
||||
|
Versions are printed in ascending order, so supplying |
||||
|
multiple versions to the utility will just sort them.</code></pre> |
||||
|
|
||||
|
<h2 id="Versions">Versions</h2> |
||||
|
|
||||
|
<p>A version is the following things, in this order:</p> |
||||
|
|
||||
|
<ul><li>a number (Major)</li><li>a period</li><li>a number (minor)</li><li>a period</li><li>a number (patch)</li><li>OPTIONAL: a hyphen, followed by a number (build)</li><li>OPTIONAL: a collection of pretty much any non-whitespace characters |
||||
|
(tag)</li></ul> |
||||
|
|
||||
|
<p>A leading <code>"="</code> or <code>"v"</code> character is stripped off and ignored.</p> |
||||
|
|
||||
|
<h2 id="Comparisons">Comparisons</h2> |
||||
|
|
||||
|
<p>The ordering of versions is done using the following algorithm, given |
||||
|
two versions and asked to find the greater of the two:</p> |
||||
|
|
||||
|
<ul><li>If the majors are numerically different, then take the one |
||||
|
with a bigger major number. <code>2.3.4 > 1.3.4</code></li><li>If the minors are numerically different, then take the one |
||||
|
with the bigger minor number. <code>2.3.4 > 2.2.4</code></li><li>If the patches are numerically different, then take the one with the |
||||
|
bigger patch number. <code>2.3.4 > 2.3.3</code></li><li>If only one of them has a build number, then take the one with the |
||||
|
build number. <code>2.3.4-0 > 2.3.4</code></li><li>If they both have build numbers, and the build numbers are numerically |
||||
|
different, then take the one with the bigger build number. |
||||
|
<code>2.3.4-10 > 2.3.4-9</code></li><li>If only one of them has a tag, then take the one without the tag. |
||||
|
<code>2.3.4 > 2.3.4-beta</code></li><li>If they both have tags, then take the one with the lexicographically |
||||
|
larger tag. <code>2.3.4-beta > 2.3.4-alpha</code></li><li>At this point, they're equal.</li></ul> |
||||
|
|
||||
|
<h2 id="Ranges">Ranges</h2> |
||||
|
|
||||
|
<p>The following range styles are supported:</p> |
||||
|
|
||||
|
<ul><li><code>>1.2.3</code> Greater than a specific version.</li><li><code><1.2.3</code> Less than</li><li><code>1.2.3 - 2.3.4</code> := <code>>=1.2.3 <=2.3.4</code></li><li><code>~1.2.3</code> := <code>>=1.2.3 <1.3.0</code></li><li><code>~1.2</code> := <code>>=1.2.0 <2.0.0</code></li><li><code>~1</code> := <code>>=1.0.0 <2.0.0</code></li><li><code>1.2.x</code> := <code>>=1.2.0 <1.3.0</code></li><li><code>1.x</code> := <code>>=1.0.0 <2.0.0</code></li></ul> |
||||
|
|
||||
|
<p>Ranges can be joined with either a space (which implies "and") or a |
||||
|
<code>||</code> (which implies "or").</p> |
||||
|
|
||||
|
<h2 id="Functions">Functions</h2> |
||||
|
|
||||
|
<ul><li>valid(v): Return the parsed version, or null if it's not valid.</li><li>inc(v, release): Return the version incremented by the release type |
||||
|
(major, minor, patch, or build), or null if it's not valid.</li></ul> |
||||
|
|
||||
|
<h3 id="Comparison">Comparison</h3> |
||||
|
|
||||
|
<ul><li>gt(v1, v2): <code>v1 > v2</code></li><li>gte(v1, v2): <code>v1 >= v2</code></li><li>lt(v1, v2): <code>v1 < v2</code></li><li>lte(v1, v2): <code>v1 <= v2</code></li><li>eq(v1, v2): <code>v1 == v2</code> This is true if they're logically equivalent, |
||||
|
even if they're not the exact same string. You already know how to |
||||
|
compare strings.</li><li>neq(v1, v2): <code>v1 != v2</code> The opposite of eq.</li><li>cmp(v1, comparator, v2): Pass in a comparison string, and it'll call |
||||
|
the corresponding function above. <code>"==="</code> and <code>"!=="</code> do simple |
||||
|
string comparison, but are included for completeness. Throws if an |
||||
|
invalid comparison string is provided.</li><li>compare(v1, v2): Return 0 if v1 == v2, or 1 if v1 is greater, or -1 if |
||||
|
v2 is greater. Sorts in ascending order if passed to Array.sort().</li><li>rcompare(v1, v2): The reverse of compare. Sorts an array of versions |
||||
|
in descending order when passed to Array.sort().</li></ul> |
||||
|
|
||||
|
<h3 id="Ranges">Ranges</h3> |
||||
|
|
||||
|
<ul><li>validRange(range): Return the valid range or null if it's not valid</li><li>satisfies(version, range): Return true if the version satisfies the |
||||
|
range.</li><li>maxSatisfying(versions, range): Return the highest version in the list |
||||
|
that satisfies the range, or null if none of them do.</li></ul> |
||||
|
|
||||
|
<h2 id="SEE-ALSO">SEE ALSO</h2> |
||||
|
|
||||
|
<ul><li><a href="../doc/json.html">json(1)</a></li></ul> |
||||
|
</div> |
||||
|
<p id="footer">semver — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,621 @@ |
|||||
|
<!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-2</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> |
@ -0,0 +1,61 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>star</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/star.html">star</a></h1> <p>Mark your favorite packages</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm star <pkgname> [<pkg>, ...] |
||||
|
npm unstar <pkgname> [<pkg>, ...]</code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>"Starring" a package means that you have some interest in it. It's |
||||
|
a vaguely positive way to show that you care.</p> |
||||
|
|
||||
|
<p>"Unstarring" is the same thing, but in reverse.</p> |
||||
|
|
||||
|
<p>It's a boolean thing. Starring repeatedly has no additional effect.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
@ -0,0 +1,55 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<title>start</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/start.html">start</a></h1> <p>Start a package</p> |
||||
|
|
||||
|
<h2 id="SYNOPSIS">SYNOPSIS</h2> |
||||
|
|
||||
|
<pre><code>npm start <name></code></pre> |
||||
|
|
||||
|
<h2 id="DESCRIPTION">DESCRIPTION</h2> |
||||
|
|
||||
|
<p>This runs a package's "start" script, if one was provided.</p> |
||||
|
|
||||
|
<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 — npm@1.1.0-alpha-2</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> |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue