<!doctype html>
< html >
< title > npm< / title >
< meta http-equiv = "content-type" value = "text/html;utf-8" >
< link rel = "stylesheet" type = "text/css" href = "../static/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.2.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.2.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 >