@@ -85,20 +85,26 @@ function linkStuff (pkg, folder, global, didRB, cb) {
// if it's global, and folder is in {prefix}/node_modules,
// then bins are in {prefix}/bin
// otherwise, then bins are in folder/../.bin
var parent = pkg.name[0] === "@" ? path.dirname(path.dirname(folder)) : path.dirname(folder)
, gnm = global && npm.globalDir
, gtop = parent === gnm

log.verbose("linkStuff", [global, gnm, gtop, parent])
log.info("linkStuff", pkg._id)

shouldWarn(pkg, folder, global, function() {
asyncMap( [linkBins, linkMans, !didRB && rebuildBundles]
, function (fn, cb) {
if (!fn) return cb()
log.verbose(fn.name, pkg._id)
fn(pkg, folder, parent, gtop, cb)
}, cb)
var parent = pkg.name[0] === '@' ? path.dirname(path.dirname(folder)) : path.dirname(folder)
var gnm = global && npm.globalDir
var gtop = parent === gnm

log.info('linkStuff', pkg._id)
log.silly('linkStuff', pkg._id, 'has', parent, 'as its parent node_modules')
if (global) log.silly('linkStuff', pkg._id, 'is part of a global install')
if (gnm) log.silly('linkStuff', pkg._id, 'is installed into a global node_modules')
if (gtop) log.silly('linkStuff', pkg._id, 'is installed into the top-level global node_modules')

shouldWarn(pkg, folder, global, function () {
asyncMap(
[linkBins, linkMans, !didRB && rebuildBundles],
function (fn, cb) {
if (!fn) return cb()
log.verbose(fn.name, pkg._id)
fn(pkg, folder, parent, gtop, cb)
},
cb
)
})
}

@@ -76,7 +76,6 @@ var npm = require("./npm.js")
, addLocal = require("./cache/add-local.js")
, addRemoteTarball = require("./cache/add-remote-tarball.js")
, addRemoteGit = require("./cache/add-remote-git.js")
, maybeGithub = require("./cache/maybe-github.js")
, inflight = require("inflight")
, realizePackageSpecifier = require("realize-package-specifier")
, npa = require("npm-package-arg")
@@ -135,9 +134,7 @@ function read (name, ver, forceBypass, cb) {

var root = cachedPackageRoot({name : name, version : ver})
function c (er, data) {
log.silly("cache", "addNamed cb", name+"@"+ver)
if (er) log.verbose("cache", "addNamed error for", name+"@"+ver, er)

if (data) deprCheck(data)

return cb(er, data)
@@ -298,14 +295,8 @@ function add (args, where, cb) {
})
break
case "git":
addRemoteGit(p.spec, false, cb)
break
case "hosted":
if (p.hosted.type === "github") {
maybeGithub(p.rawSpec, cb)
} else {
addRemoteGit(p.spec, false, cb)
}
addRemoteGit(p.rawSpec, cb)
break
default:
if (p.name) return addNamed(p.name, p.spec, null, cb)
@@ -34,20 +34,23 @@ function addNamed (name, version, data, cb_) {
assert(typeof cb_ === "function", "must have callback")

var key = name + "@" + version
log.verbose("addNamed", key)
log.silly("addNamed", key)

function cb (er, data) {
if (data && !data._fromGithub) data._from = key
cb_(er, data)
}

log.silly("addNamed", "semver.valid", semver.valid(version))
log.silly("addNamed", "semver.validRange", semver.validRange(version))
var fn = ( semver.valid(version, true) ? addNameVersion
: semver.validRange(version, true) ? addNameRange
: addNameTag
)
fn(name, version, data, cb)
if (semver.valid(version, true)) {
log.verbose('addNamed', JSON.stringify(version), 'is a plain semver version for', name)
addNameVersion(name, version, data, cb)
} else if (semver.validRange(version, true)) {
log.verbose('addNamed', JSON.stringify(version), 'is a valid semver range for', name)
addNameRange(name, version, data, cb)
} else {
log.verbose('addNamed', JSON.stringify(version), 'is being treated as a dist-tag for', name)
addNameTag(name, version, data, cb)
}
}

function addNameTag (name, tag, data, cb) {

Large diffs are not rendered by default.

This file was deleted.

@@ -1,82 +1,86 @@
module.exports = updateIndex

var fs = require("graceful-fs")
, assert = require("assert")
, path = require("path")
, mkdir = require("mkdirp")
, chownr = require("chownr")
, url = require("url")
, npm = require("../npm.js")
, log = require("npmlog")
, cacheFile = require("npm-cache-filename")
, getCacheStat = require("./get-stat.js")
var fs = require('graceful-fs')
var assert = require('assert')
var path = require('path')
var mkdir = require('mkdirp')
var chownr = require('chownr')
var npm = require('../npm.js')
var log = require('npmlog')
var cacheFile = require('npm-cache-filename')
var getCacheStat = require('./get-stat.js')
var mapToRegistry = require('../utils/map-to-registry.js')

/* /-/all is special.
* It uses timestamp-based caching and partial updates,
* because it is a monster.
*/
function updateIndex (uri, params, cb) {
assert(typeof uri === "string", "must pass registry URI to updateIndex")
assert(params && typeof params === "object", "must pass params to updateIndex")
assert(typeof cb === "function", "must pass callback to updateIndex")

var parsed = url.parse(uri)
assert(
parsed.protocol === "http:" || parsed.protocol === "https:",
"must have a URL that starts with http: or https:"
)

var cacheBase = cacheFile(npm.config.get("cache"))(uri)
var cachePath = path.join(cacheBase, ".cache.json")
log.info("updateIndex", cachePath)

getCacheStat(function (er, st) {
function updateIndex (staleness, cb) {
assert(typeof cb === 'function', 'must pass callback to updateIndex')

mapToRegistry('-/all', npm.config, function (er, uri, auth) {
if (er) return cb(er)

mkdir(cacheBase, function (er, made) {
if (er) return cb(er)
var params = {
timeout: staleness,
follow: true,
staleOk: true,
auth: auth
}
var cacheBase = cacheFile(npm.config.get('cache'))(uri)
var cachePath = path.join(cacheBase, '.cache.json')
log.info('updateIndex', cachePath)

fs.readFile(cachePath, function (er, data) {
if (er) return updateIndex_(uri, params, 0, {}, cachePath, cb)
getCacheStat(function (er, st) {
if (er) return cb(er)

try {
data = JSON.parse(data)
}
catch (ex) {
fs.writeFile(cachePath, "{}", function (er) {
if (er) return cb(new Error("Broken cache."))
mkdir(cacheBase, function (er, made) {
if (er) return cb(er)

return updateIndex_(uri, params, 0, {}, cachePath, cb)
fs.readFile(cachePath, function (er, data) {
if (er) {
log.warn('', 'Building the local index for the first time, please be patient')
return updateIndex_(uri, params, {}, cachePath, cb)
}

chownr(made || cachePath, st.uid, st.gid, function (er) {
if (er) return cb(er)

try {
data = JSON.parse(data)
} catch (ex) {
fs.writeFile(cachePath, '{}', function (er) {
if (er) return cb(new Error('Broken cache.'))

log.warn('', 'Building the local index for the first time, please be patient')
return updateIndex_(uri, params, {}, cachePath, cb)
})
}

var t = +data._updated || 0
// use the cache and update in the background if it's not too old
if (Date.now() - t < 60000) {
cb(null, data)
cb = function () {}
}

if (t === 0) {
log.warn('', 'Building the local index for the first time, please be patient')
} else {
log.verbose('updateIndex', 'Cached search data present with timestamp', t)
uri += '/since?stale=update_after&startkey=' + t
}
updateIndex_(uri, params, data, cachePath, cb)
})
}
var t = +data._updated || 0
chownr(made || cachePath, st.uid, st.gid, function (er) {
if (er) return cb(er)

updateIndex_(uri, params, t, data, cachePath, cb)
})
})
})
})
}

function updateIndex_ (uri, params, t, data, cachePath, cb) {
// use the cache and update in the background if it's not too old
if (Date.now() - t < 60000) {
cb(null, data)
cb = function () {}
}

var full
if (t === 0) {
log.warn("", "Building the local index for the first time, please be patient")
full = url.resolve(uri, "/-/all")
}
else {
full = url.resolve(uri, "/-/all/since?stale=update_after&startkey=" + t)
}

npm.registry.request(full, params, function (er, updates, _, res) {
function updateIndex_ (all, params, data, cachePath, cb) {
log.silly('update-index', 'fetching', all)
npm.registry.request(all, params, function (er, updates, _, res) {
if (er) return cb(er, data)

var headers = res.headers
@@ -74,8 +74,10 @@ function load () {
loading = true

cb = once(function (er, conf) {
if (!er)
if (!er) {
exports.loaded = conf
loading = false
}
loadCbs.forEach(function (fn) {
fn(er, conf)
})
@@ -9,8 +9,12 @@ function loadCAFile(cafilePath, cb) {
fs.readFile(cafilePath, "utf8", afterCARead.bind(this))

function afterCARead(er, cadata) {
if (er)

if (er) {
// previous cafile no longer exists, so just continue on gracefully
if (er.code === 'ENOENT') return cb()
return cb(er)
}

var delim = "-----END CERTIFICATE-----"
var output
@@ -17,7 +17,7 @@ function init (args, cb) {
if (!initJson.yes(npm.config)) {
console.log(
["This utility will walk you through creating a package.json file."
,"It only covers the most common items, and tries to guess sane defaults."
,"It only covers the most common items, and tries to guess sensible defaults."
,""
,"See `npm help json` for definitive documentation on these fields"
,"and exactly what they do."
@@ -223,8 +223,9 @@ function install (args, cb_) {

// initial "family" is the name:version of the root, if it's got
// a package.json file.
var jsonFile = path.resolve(where, "package.json")
readJson(jsonFile, log.warn, function (er, data) {
var jsonPath = path.resolve(where, "package.json")
log.verbose('install', 'initial load of', jsonPath)
readJson(jsonPath, log.warn, function (er, data) {
if (er
&& er.code !== "ENOENT"
&& er.code !== "ENOTDIR") return cb(er)
@@ -246,7 +247,9 @@ function install (args, cb_) {
}

function validateInstall (where, cb) {
readJson(path.resolve(where, 'package.json'), log.warn, function (er, data) {
var jsonPath = path.resolve(where, 'package.json')
log.verbose('validateInstall', 'loading', jsonPath, 'for validation')
readJson(jsonPath, log.warn, function (er, data) {
if (er
&& er.code !== 'ENOENT'
&& er.code !== 'ENOTDIR') return cb(er)
@@ -314,11 +317,11 @@ function findPeerInvalid_ (packageMap, fpiList) {
function readDependencies (context, where, opts, cb) {
var wrap = context ? context.wrap : null

readJson( path.resolve(where, "package.json")
, log.warn
, function (er, data) {
var jsonPath = path.resolve(where, 'package.json')
log.verbose('readDependencies', 'loading dependencies from', jsonPath)
readJson(jsonPath, log.warn, function (er, data) {
if (er && er.code === "ENOENT") er.code = "ENOPACKAGEJSON"
if (er) return cb(er)
if (er) return cb(er)

if (opts && opts.dev) {
if (!data.dependencies) data.dependencies = {}
@@ -420,17 +423,17 @@ function save (where, installed, tree, pretty, hasArguments, cb) {
var saveTarget = path.resolve(where, "package.json")

asyncMap(Object.keys(tree), function (k, cb) {
// if "what" was a url, then save that instead.
// if "from" is remote, git, or hosted, then save that instead.
var t = tree[k]
, u = url.parse(t.from)
, f = npa(t.from)
, a = npa(t.what)
, w = [a.name, a.spec]


fs.stat(t.from, function (er){
if (!er) {
w[1] = "file:" + t.from
} else if (u && u.protocol) {
} else if (['hosted', 'git', 'remote'].indexOf(f.type) !== -1) {
w[1] = t.from
}
cb(null, [w])
@@ -472,7 +475,7 @@ function save (where, installed, tree, pretty, hasArguments, cb) {
data.bundleDependencies = bundle.sort()
}

log.verbose("saving", things)
log.verbose("save", "saving", things)
data[deps] = data[deps] || {}
Object.keys(things).forEach(function (t) {
data[deps][t] = things[t]
@@ -485,6 +488,7 @@ function save (where, installed, tree, pretty, hasArguments, cb) {

data[deps] = sortedObject(data[deps])

log.silly("save", "writing", saveTarget)
data = JSON.stringify(data, null, 2) + "\n"
writeFileAtomic(saveTarget, data, function (er) {
cb(er, installed, tree, pretty)
@@ -601,7 +605,9 @@ function installManyTop (what, where, context, cb_) {

if (context.explicit) return next()

readJson(path.join(where, "package.json"), log.warn, function (er, data) {
var jsonPath = path.join(where, 'package.json')
log.verbose('installManyTop', 'reading for lifecycle', jsonPath)
readJson(jsonPath, log.warn, function (er, data) {
if (er) return next(er)
lifecycle(data, "preinstall", where, next)
})
@@ -636,8 +642,9 @@ function installManyTop_ (what, where, context, cb) {
// recombine unscoped with @scope/package packages
asyncMap(unscoped.concat(scoped).map(function (p) {
return path.resolve(nm, p, "package.json")
}), function (jsonfile, cb) {
readJson(jsonfile, log.warn, function (er, data) {
}), function (jsonPath, cb) {
log.verbose('installManyTop', 'reading scoped package data from', jsonPath)
readJson(jsonPath, log.warn, function (er, data) {
if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
if (er) return cb(null, [])
cb(null, [[data.name, data.version]])
@@ -789,7 +796,9 @@ function targetResolver (where, context, deps) {
})

asyncMap(inst, function (pkg, cb) {
readJson(path.resolve(name, pkg, "package.json"), log.warn, function (er, d) {
var jsonPath = path.resolve(name, pkg, 'package.json')
log.verbose('targetResolver', 'reading package data from', jsonPath)
readJson(jsonPath, log.warn, function (er, d) {
if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
// error means it's not a package, most likely.
if (er) return cb(null, [])
@@ -930,11 +939,11 @@ function installOne (target, where, context, cb) {

function localLink (target, where, context, cb) {
log.verbose("localLink", target._id)
var jsonFile = path.resolve( npm.globalDir, target.name
, "package.json" )
, parent = context.parent
var jsonPath = path.resolve(npm.globalDir, target.name , 'package.json')
var parent = context.parent

readJson(jsonFile, log.warn, function (er, data) {
log.verbose('localLink', 'reading data to link', target.name, 'from', jsonPath)
readJson(jsonPath, log.warn, function (er, data) {
function thenLink () {
npm.commands.link([target.name], function (er, d) {
log.silly("localLink", "back from link", [er, d])
@@ -1057,23 +1066,24 @@ function write (target, targetFolder, context, cb_) {

log.silly("install write", "writing", target.name, target.version, "to", targetFolder)
chain(
[ [ cache.unpack, target.name, target.version, targetFolder
, null, null, user, group ]
, [ fs, "writeFile"
, path.resolve(targetFolder, "package.json")
, JSON.stringify(target, null, 2) + "\n" ]
, [ lifecycle, target, "preinstall", targetFolder ]
, function (cb) {
if (!target.bundleDependencies) return cb()

var bd = path.resolve(targetFolder, "node_modules")
fs.readdir(bd, function (er, b) {
// nothing bundled, maybe
if (er) return cb()
bundled = b || []
cb()
})
} ]
[ [ cache.unpack, target.name, target.version, targetFolder, null, null, user, group ],
function writePackageJSON (cb) {
var jsonPath = path.resolve(targetFolder, 'package.json')
log.verbose('write', 'writing to', jsonPath)
writeFileAtomic(jsonPath, JSON.stringify(target, null, 2) + '\n', cb)
},
[ lifecycle, target, "preinstall", targetFolder ],
function collectBundled (cb) {
if (!target.bundleDependencies) return cb()

var bd = path.resolve(targetFolder, "node_modules")
fs.readdir(bd, function (er, b) {
// nothing bundled, maybe
if (er) return cb()
bundled = b || []
cb()
})
} ]

// nest the chain so that we can throw away the results returned
// up until this point, since we really don't care about it.
@@ -1118,7 +1128,16 @@ function write (target, targetFolder, context, cb_) {
"in npm 3+. Your application will need to depend on it explicitly."
], pd+","+data.name)
})
var pdTargetFolder = path.resolve(targetFolder, "..", "..")

// Package scopes cause an addditional tree level which needs to be
// considered when resolving a peerDependency's target folder.
var pdTargetFolder
if (npa(target.name).scope) {
pdTargetFolder = path.resolve(targetFolder, '../../..')
} else {
pdTargetFolder = path.resolve(targetFolder, '../..')
}

var pdContext = context
if (peerDeps.length > 0) {
actions.push(
@@ -127,7 +127,7 @@ function linkPkg (folder, cb_) {
return cb(er)
}
var target = path.resolve(npm.globalDir, d.name)
symlink(me, target, function (er) {
symlink(me, target, false, true, function (er) {
if (er) return cb(er)
log.verbose("link", "build target", target)
// also install missing dependencies.
@@ -11,9 +11,6 @@ if (typeof WScript !== "undefined") {
}


// monkey-patch support for 0.6 child processes
require('child-process-close')

var EventEmitter = require("events").EventEmitter
, npm = module.exports = new EventEmitter()
, npmconf = require("./config/core.js")
@@ -189,8 +189,7 @@ function run (pkg, wd, cmd, args, cb) {
function joinArgs (args) {
var joinedArgs = ""
args.forEach(function(arg) {
if (arg.match(/[ '"]/)) arg = '"' + arg.replace(/"/g, '\\"') + '"'
joinedArgs += " " + arg
joinedArgs += ' "' + arg.replace(/"/g, '\\"') + '"'
})
return joinedArgs
}
@@ -3,7 +3,6 @@ module.exports = exports = search

var npm = require("./npm.js")
, columnify = require("columnify")
, mapToRegistry = require("./utils/map-to-registry.js")
, updateIndex = require("./cache/update-index.js")

search.usage = "npm search [some search terms ...]"
@@ -35,19 +34,24 @@ function search (args, silent, staleness, cb) {
if (typeof cb !== "function") cb = silent, silent = false

var searchopts = npm.config.get("searchopts")
, searchexclude = npm.config.get("searchexclude")
var searchexclude = npm.config.get("searchexclude")

if (typeof searchopts !== "string") searchopts = ""
searchopts = searchopts.split(/\s+/)
if (typeof searchexclude === "string") {
searchexclude = searchexclude.split(/\s+/)
} else searchexclude = []
var opts = searchopts.concat(args).map(function (s) {
return s.toLowerCase()
}).filter(function (s) { return s })

if (typeof searchexclude === "string") {
searchexclude = searchexclude.split(/\s+/)
} else {
searchexclude = []
}
searchexclude = searchexclude.map(function (s) {
return s.toLowerCase()
})
getFilteredData( staleness, opts, searchexclude, function (er, data) {

getFilteredData(staleness, opts, searchexclude, function (er, data) {
// now data is the list of data that we want to show.
// prettify and print it, and then provide the raw
// data to the cb.
@@ -58,19 +62,9 @@ function search (args, silent, staleness, cb) {
}

function getFilteredData (staleness, args, notArgs, cb) {
mapToRegistry("-/all", npm.config, function (er, uri, auth) {
updateIndex(staleness, function (er, data) {
if (er) return cb(er)

var params = {
timeout : staleness,
follow : true,
staleOk : true,
auth : auth
}
updateIndex(uri, params, function (er, data) {
if (er) return cb(er)
return cb(null, filter(data, args, notArgs))
})
return cb(null, filter(data, args, notArgs))
})
}

@@ -30,7 +30,6 @@ function unbuild_ (silent) { return function (folder, cb_) {
readJson(path.resolve(folder, "package.json"), function (er, pkg) {
// if no json, then just trash it, but no scripts or whatever.
if (er) return gentlyRm(folder, false, base, cb)
readJson.cache.del(folder)
chain
( [ [lifecycle, pkg, "preuninstall", folder, false, true]
, [lifecycle, pkg, "uninstall", folder, false, true]
@@ -53,8 +52,6 @@ function rmStuff (pkg, folder, cb) {
, gnm = npm.dir
, top = gnm === parent

readJson.cache.del(path.resolve(folder, "package.json"))

log.verbose("unbuild rmStuff", pkg._id, "from", gnm)
if (!top) log.verbose("unbuild rmStuff", "in", parent)
asyncMap([rmBins, rmMans], function (fn, cb) {
@@ -20,11 +20,7 @@ function prefixGitArgs () {
function execGit (args, options, cb) {
log.info('git', args)
var fullArgs = prefixGitArgs().concat(args || [])
return exec(git, fullArgs, options, function (err) {
if (err) log.error('git', fullArgs.join(' '))

cb.apply(null, arguments)
})
return exec(git, fullArgs, options, cb)
}

function spawnGit (args, options) {
@@ -16,13 +16,14 @@ function linkIfExists (from, to, gently, cb) {
})
}

function link (from, to, gently, cb) {
function link (from, to, gently, abs, cb) {
if (typeof cb !== "function") cb = abs, abs = false
if (typeof cb !== "function") cb = gently, gently = null
if (npm.config.get("force")) gently = false

to = path.resolve(to)
var target = from = path.resolve(from)
if (process.platform !== "win32") {
if (!abs && process.platform !== "win32") {
// junctions on windows must be absolute
target = path.relative(path.dirname(to), from)
// if there is no folder in common, then it will be much
@@ -11,7 +11,18 @@ function spawn (cmd, args, options) {
er.file = cmd
cooked.emit("error", er)
}).on("close", function (code, signal) {
cooked.emit("close", code, signal)
// Create ENOENT error because Node.js v0.8 will not emit
// an `error` event if the command could not be found.
if (code === 127) {
var er = new Error('spawn ENOENT')
er.code = 'ENOENT'
er.errno = 'ENOENT'
er.syscall = 'spawn'
er.file = cmd
cooked.emit('error', er)
} else {
cooked.emit("close", code, signal)
}
})

cooked.stdin = raw.stdin
@@ -1,4 +1,4 @@
.TH "NPM" "1" "March 2015" "" ""
.TH "NPM" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm\fR \- a JavaScript package manager
.P
@@ -38,7 +38,7 @@ Here's an example using curl:
.P
.RS 2
.nf
curl \-L https://npmjs\.com/install\.sh | sh
curl \-L https://www\.npmjs\.com/install\.sh | sh
.fi
.RE
.SS Slightly Fancier
@@ -69,11 +69,11 @@ run npm commands by doing \fBnode cli\.js <cmd> <args>\fR\|\. (This is helpful
for testing, or running stuff without actually installing npm itself\.)
.SH Windows Install or Upgrade
.P
You can download a zip file from https://github\.com/npm/npm/releases, and unpack it
in the same folder where node\.exe lives\.
You can download a zip file from https://github\.com/npm/npm/releases, and
unpack it in the \fBnode_modules\\npm\\\fR folder inside node's installation folder\.
.P
The latest version in a zip file is 1\.4\.12\. To upgrade to npm 2, follow the
Windows upgrade instructions in the npm Troubleshooting Guide:
To upgrade to npm 2, follow the Windows upgrade instructions in
the npm Troubleshooting Guide:
.P
https://github\.com/npm/npm/wiki/Troubleshooting#upgrading\-on\-windows
.P
@@ -1,4 +1,4 @@
.TH "NPM\-ACCESS" "1" "March 2015" "" ""
.TH "NPM\-ACCESS" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-access\fR \- Set access level on published packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-ADDUSER" "1" "March 2015" "" ""
.TH "NPM\-ADDUSER" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-adduser\fR \- Add a registry user account
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-BIN" "1" "March 2015" "" ""
.TH "NPM\-BIN" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-BUGS" "1" "March 2015" "" ""
.TH "NPM\-BUGS" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-BUILD" "1" "March 2015" "" ""
.TH "NPM\-BUILD" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-build\fR \- Build a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-BUNDLE" "1" "March 2015" "" ""
.TH "NPM\-BUNDLE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-bundle\fR \- REMOVED
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-CACHE" "1" "March 2015" "" ""
.TH "NPM\-CACHE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-cache\fR \- Manipulates packages cache
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-COMPLETION" "1" "March 2015" "" ""
.TH "NPM\-COMPLETION" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-completion\fR \- Tab Completion for npm
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-CONFIG" "1" "March 2015" "" ""
.TH "NPM\-CONFIG" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-DEDUPE" "1" "March 2015" "" ""
.TH "NPM\-DEDUPE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-dedupe\fR \- Reduce duplication
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-DEPRECATE" "1" "March 2015" "" ""
.TH "NPM\-DEPRECATE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-DIST\-TAG" "1" "March 2015" "" ""
.TH "NPM\-DIST\-TAG" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-dist-tag\fR \- Modify package distribution tags
.SH SYNOPSIS
@@ -47,7 +47,8 @@ npm install \-\-tag <tag>
.P
This also applies to \fBnpm dedupe\fR\|\.
.P
Publishing a package always sets the "latest" tag to the published version\.
Publishing a package sets the "latest" tag to the published version unless the
\fB\-\-tag\fR option is used\. For example, \fBnpm publish \-\-tag=beta\fR\|\.
.SH PURPOSE
.P
Tags can be used to provide an alias instead of version numbers\. For
@@ -1,4 +1,4 @@
.TH "NPM\-DOCS" "1" "March 2015" "" ""
.TH "NPM\-DOCS" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Docs for a package in a web browser maybe
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-EDIT" "1" "March 2015" "" ""
.TH "NPM\-EDIT" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-EXPLORE" "1" "March 2015" "" ""
.TH "NPM\-EXPLORE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-HELP\-SEARCH" "1" "March 2015" "" ""
.TH "NPM\-HELP\-SEARCH" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search npm help documentation
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-HELP" "1" "March 2015" "" ""
.TH "NPM\-HELP" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-help\fR \- Get help on npm
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-INIT" "1" "March 2015" "" ""
.TH "NPM\-INIT" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-init\fR \- Interactively create a package\.json file
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-INSTALL" "1" "March 2015" "" ""
.TH "NPM\-INSTALL" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-install\fR \- Install a package
.SH SYNOPSIS
@@ -191,16 +191,60 @@ fetch the package by name if it is not valid\.
npm install mygithubuser/myproject
.fi
.RE
To reference a package in a git repo that is not on GitHub, see git
remote urls below\.
To reference a package in a generic git repo (not on GitHub), see git remote
urls below\.
.IP \(bu 2
\fBnpm install github:<githubname>/<githubrepo>\fR:
The same as the above, but explicitly marked as a GitHub dependency\.
Example:
.P
.RS 2
.nf
npm install github:npm/npm
.fi
.RE
.IP \(bu 2
\fBnpm install gist:[<githubname>/]<gistID>\fR:
Install the package at \fBhttps://gist\.github\.com/gistID\fR by attempting to
clone it using \fBgit\fR\|\. The GitHub username associated with the gist is
optional and will not be saved in \fBpackage\.json\fR if \fB\-\-save\fR is used\.
Example:
.P
.RS 2
.nf
npm install gist:101a11beef
.fi
.RE
.IP \(bu 2
\fBnpm install bitbucket:<bitbucketname>/<bitbucketrepo>\fR:
Install the package at \fBhttps://bitbucket\.org/bitbucketname/bitbucketrepo\fR
by attempting to clone it using \fBgit\fR\|\.
Example:
.P
.RS 2
.nf
npm install bitbucket:mybitbucketuser/myproject
.fi
.RE
.IP \(bu 2
\fBnpm install gitlab:<gitlabname>/<gitlabrepo>\fR:
Install the package at \fBhttps://gitlab\.com/gitlabname/gitlabrepo\fR
by attempting to clone it using \fBgit\fR\|\.
Example:
.P
.RS 2
.nf
npm install gitlab:mygitlabuser/myproject
.fi
.RE
.IP \(bu 2
\fBnpm install <git remote url>\fR:
Install a package by cloning a git remote url\. The format of the git
url is:
.P
.RS 2
.nf
<protocol>://[<user>@]<hostname><separator><path>[#<commit\-ish>]
<protocol>://[<user>[:<password>]@]<hostname><separator><path>[#<commit\-ish>]
.fi
.RE
\fB<protocol>\fR is one of \fBgit\fR, \fBgit+ssh\fR, \fBgit+http\fR, or
@@ -1,4 +1,4 @@
.TH "NPM\-LINK" "1" "March 2015" "" ""
.TH "NPM\-LINK" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
@@ -46,7 +46,7 @@ npm link redis # link\-install the package
.P
Now, any changes to ~/projects/node\-redis will be reflected in
~/projects/node\-bloggy/node_modules/node\-redis/\. Note that the link should
be to the package name, not the directory name for that package\.
be to the package name, not the directory name for that package\.
.P
You may also shortcut the two steps in one\. For example, to do the
above use\-case in a shorter way:
@@ -1,4 +1,4 @@
.TH "NPM\-LOGOUT" "1" "March 2015" "" ""
.TH "NPM\-LOGOUT" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-logout\fR \- Log out of the registry
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-LS" "1" "March 2015" "" ""
.TH "NPM\-LS" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SH SYNOPSIS
@@ -23,7 +23,7 @@ For example, running \fBnpm ls promzard\fR in npm's source tree will show:
.P
.RS 2
.nf
npm@2.7.4 /path/to/npm
npm@2.8.4 /path/to/npm
└─┬ init\-package\-json@0\.0\.4
└── promzard@0\.1\.5
.fi
@@ -1,4 +1,4 @@
.TH "NPM\-OUTDATED" "1" "March 2015" "" ""
.TH "NPM\-OUTDATED" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-OWNER" "1" "March 2015" "" ""
.TH "NPM\-OWNER" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PACK" "1" "March 2015" "" ""
.TH "NPM\-PACK" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PREFIX" "1" "March 2015" "" ""
.TH "NPM\-PREFIX" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PRUNE" "1" "March 2015" "" ""
.TH "NPM\-PRUNE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PUBLISH" "1" "March 2015" "" ""
.TH "NPM\-PUBLISH" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-REBUILD" "1" "March 2015" "" ""
.TH "NPM\-REBUILD" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-REPO" "1" "March 2015" "" ""
.TH "NPM\-REPO" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RESTART" "1" "March 2015" "" ""
.TH "NPM\-RESTART" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RM" "1" "March 2015" "" ""
.TH "NPM\-RM" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-rm\fR \- Remove a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-ROOT" "1" "March 2015" "" ""
.TH "NPM\-ROOT" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RUN\-SCRIPT" "1" "March 2015" "" ""
.TH "NPM\-RUN\-SCRIPT" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-SEARCH" "1" "March 2015" "" ""
.TH "NPM\-SEARCH" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-SHRINKWRAP" "1" "March 2015" "" ""
.TH "NPM\-SHRINKWRAP" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- Lock down dependency versions
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-STAR" "1" "March 2015" "" ""
.TH "NPM\-STAR" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-star\fR \- Mark your favorite packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-STARS" "1" "March 2015" "" ""
.TH "NPM\-STARS" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-stars\fR \- View packages marked as favorites
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-START" "1" "March 2015" "" ""
.TH "NPM\-START" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-STOP" "1" "March 2015" "" ""
.TH "NPM\-STOP" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-TAG" "1" "March 2015" "" ""
.TH "NPM\-TAG" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-tag\fR \- Tag a published version
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-TEST" "1" "March 2015" "" ""
.TH "NPM\-TEST" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RM" "1" "March 2015" "" ""
.TH "NPM\-RM" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-rm\fR \- Remove a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-UNPUBLISH" "1" "March 2015" "" ""
.TH "NPM\-UNPUBLISH" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-UPDATE" "1" "March 2015" "" ""
.TH "NPM\-UPDATE" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-VERSION" "1" "March 2015" "" ""
.TH "NPM\-VERSION" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-VIEW" "1" "March 2015" "" ""
.TH "NPM\-VIEW" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-WHOAMI" "1" "March 2015" "" ""
.TH "NPM\-WHOAMI" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM" "1" "March 2015" "" ""
.TH "NPM" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -10,7 +10,7 @@ npm <command> [args]
.RE
.SH VERSION
.P
2.7.4
2.8.4
.SH DESCRIPTION
.P
npm is the package manager for the Node JavaScript platform\. It puts
@@ -1,4 +1,4 @@
.TH "NPM\-BIN" "3" "March 2015" "" ""
.TH "NPM\-BIN" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-bin\fR \- Display npm bin folder
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-BUGS" "3" "March 2015" "" ""
.TH "NPM\-BUGS" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-bugs\fR \- Bugs for a package in a web browser maybe
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-CACHE" "3" "March 2015" "" ""
.TH "NPM\-CACHE" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-cache\fR \- manage the npm cache programmatically
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-COMMANDS" "3" "March 2015" "" ""
.TH "NPM\-COMMANDS" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-commands\fR \- npm commands
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-CONFIG" "3" "March 2015" "" ""
.TH "NPM\-CONFIG" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-config\fR \- Manage the npm configuration files
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-DEPRECATE" "3" "March 2015" "" ""
.TH "NPM\-DEPRECATE" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-deprecate\fR \- Deprecate a version of a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-DOCS" "3" "March 2015" "" ""
.TH "NPM\-DOCS" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-docs\fR \- Docs for a package in a web browser maybe
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-EDIT" "3" "March 2015" "" ""
.TH "NPM\-EDIT" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-edit\fR \- Edit an installed package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-EXPLORE" "3" "March 2015" "" ""
.TH "NPM\-EXPLORE" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-explore\fR \- Browse an installed package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-HELP\-SEARCH" "3" "March 2015" "" ""
.TH "NPM\-HELP\-SEARCH" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-help-search\fR \- Search the help pages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM" "" "March 2015" "" ""
.TH "NPM" "" "April 2015" "" ""
.SH "NAME"
\fBnpm\fR
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-INSTALL" "3" "March 2015" "" ""
.TH "NPM\-INSTALL" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-install\fR \- install a package programmatically
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-LINK" "3" "March 2015" "" ""
.TH "NPM\-LINK" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-link\fR \- Symlink a package folder
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-LOAD" "3" "March 2015" "" ""
.TH "NPM\-LOAD" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-load\fR \- Load config settings
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-LS" "3" "March 2015" "" ""
.TH "NPM\-LS" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-ls\fR \- List installed packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-OUTDATED" "3" "March 2015" "" ""
.TH "NPM\-OUTDATED" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-outdated\fR \- Check for outdated packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-OWNER" "3" "March 2015" "" ""
.TH "NPM\-OWNER" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-owner\fR \- Manage package owners
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PACK" "3" "March 2015" "" ""
.TH "NPM\-PACK" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-pack\fR \- Create a tarball from a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PREFIX" "3" "March 2015" "" ""
.TH "NPM\-PREFIX" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-prefix\fR \- Display prefix
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PRUNE" "3" "March 2015" "" ""
.TH "NPM\-PRUNE" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-prune\fR \- Remove extraneous packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-PUBLISH" "3" "March 2015" "" ""
.TH "NPM\-PUBLISH" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-publish\fR \- Publish a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-REBUILD" "3" "March 2015" "" ""
.TH "NPM\-REBUILD" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-rebuild\fR \- Rebuild a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-REPO" "3" "March 2015" "" ""
.TH "NPM\-REPO" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-repo\fR \- Open package repository page in the browser
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RESTART" "3" "March 2015" "" ""
.TH "NPM\-RESTART" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-restart\fR \- Restart a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-ROOT" "3" "March 2015" "" ""
.TH "NPM\-ROOT" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-root\fR \- Display npm root
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-RUN\-SCRIPT" "3" "March 2015" "" ""
.TH "NPM\-RUN\-SCRIPT" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-run-script\fR \- Run arbitrary package scripts
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-SEARCH" "3" "March 2015" "" ""
.TH "NPM\-SEARCH" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-search\fR \- Search for packages
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-SHRINKWRAP" "3" "March 2015" "" ""
.TH "NPM\-SHRINKWRAP" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-shrinkwrap\fR \- programmatically generate package shrinkwrap file
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-START" "3" "March 2015" "" ""
.TH "NPM\-START" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-start\fR \- Start a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-STOP" "3" "March 2015" "" ""
.TH "NPM\-STOP" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-stop\fR \- Stop a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-TAG" "3" "March 2015" "" ""
.TH "NPM\-TAG" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-tag\fR \- Tag a published version
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-TEST" "3" "March 2015" "" ""
.TH "NPM\-TEST" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-test\fR \- Test a package
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-UNINSTALL" "3" "March 2015" "" ""
.TH "NPM\-UNINSTALL" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-uninstall\fR \- uninstall a package programmatically
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-UNPUBLISH" "3" "March 2015" "" ""
.TH "NPM\-UNPUBLISH" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-unpublish\fR \- Remove a package from the registry
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-UPDATE" "3" "March 2015" "" ""
.TH "NPM\-UPDATE" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-update\fR \- Update a package
.SH SYNOPSIS
@@ -8,7 +8,7 @@
npm\.commands\.update(packages, callback)
.fi
.RE
.TH "DESCRIPTION" "" "March 2015" "" ""
.TH "DESCRIPTION" "" "April 2015" "" ""
.SH "NAME"
\fBDESCRIPTION\fR
.P
@@ -1,4 +1,4 @@
.TH "NPM\-VERSION" "3" "March 2015" "" ""
.TH "NPM\-VERSION" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-version\fR \- Bump a package version
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-VIEW" "3" "March 2015" "" ""
.TH "NPM\-VIEW" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-view\fR \- View registry info
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-WHOAMI" "3" "March 2015" "" ""
.TH "NPM\-WHOAMI" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm-whoami\fR \- Display npm username
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM" "3" "March 2015" "" ""
.TH "NPM" "3" "April 2015" "" ""
.SH "NAME"
\fBnpm\fR \- javascript package manager
.SH SYNOPSIS
@@ -20,7 +20,7 @@ npm\.load([configObject, ]function (er, npm) {
.RE
.SH VERSION
.P
2.7.4
2.8.4
.SH DESCRIPTION
.P
This is the API documentation for npm\.
@@ -1,4 +1,4 @@
.TH "NPM\-FOLDERS" "5" "March 2015" "" ""
.TH "NPM\-FOLDERS" "5" "April 2015" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-FOLDERS" "5" "March 2015" "" ""
.TH "NPM\-FOLDERS" "5" "April 2015" "" ""
.SH "NAME"
\fBnpm-folders\fR \- Folder Structures Used by npm
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "PACKAGE\.JSON" "5" "March 2015" "" ""
.TH "PACKAGE\.JSON" "5" "April 2015" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -126,7 +126,7 @@ Or you can shorten that all into a single string, and npm will parse it for you:
.P
.RS 2
.nf
"Barney Rubble <b@rubble\.com> (http://barnyrubble\.tumblr\.com/)
"Barney Rubble <b@rubble\.com> (http://barnyrubble\.tumblr\.com/)"
.fi
.RE
.P
@@ -302,12 +302,18 @@ The URL should be a publicly available (perhaps read\-only) url that can be hand
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
For GitHub repositories you can use the same shortcut syntax you use for \fBnpm
install\fR:
For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same
shortcut syntax you use for \fBnpm install\fR:
.P
.RS 2
.nf
"repository": "npm/npm"

"repository": "gist:11081aaa281"

"repository": "bitbucket:example/repo"

"repository": "gitlab:another/repo"
.fi
.RE
.SH scripts
@@ -1,4 +1,4 @@
.TH "NPMRC" "5" "March 2015" "" ""
.TH "NPMRC" "5" "April 2015" "" ""
.SH "NAME"
\fBnpmrc\fR \- The npm config files
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "PACKAGE\.JSON" "5" "March 2015" "" ""
.TH "PACKAGE\.JSON" "5" "April 2015" "" ""
.SH "NAME"
\fBpackage.json\fR \- Specifics of npm's package\.json handling
.SH DESCRIPTION
@@ -126,7 +126,7 @@ Or you can shorten that all into a single string, and npm will parse it for you:
.P
.RS 2
.nf
"Barney Rubble <b@rubble\.com> (http://barnyrubble\.tumblr\.com/)
"Barney Rubble <b@rubble\.com> (http://barnyrubble\.tumblr\.com/)"
.fi
.RE
.P
@@ -302,12 +302,18 @@ The URL should be a publicly available (perhaps read\-only) url that can be hand
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
For GitHub repositories you can use the same shortcut syntax you use for \fBnpm
install\fR:
For GitHub, GitHub gist, Bitbucket, or GitLab repositories you can use the same
shortcut syntax you use for \fBnpm install\fR:
.P
.RS 2
.nf
"repository": "npm/npm"

"repository": "gist:11081aaa281"

"repository": "bitbucket:example/repo"

"repository": "gitlab:another/repo"
.fi
.RE
.SH scripts
@@ -1,4 +1,4 @@
.TH "NPM\-CODING\-STYLE" "7" "March 2015" "" ""
.TH "NPM\-CODING\-STYLE" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-coding-style\fR \- npm's "funny" coding style
.SH DESCRIPTION
@@ -1,9 +1,9 @@
.TH "NPM\-CONFIG" "7" "March 2015" "" ""
.TH "NPM\-CONFIG" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-config\fR \- More than you probably want to know about npm configuration
.SH DESCRIPTION
.P
npm gets its configuration values from 6 sources, in this priority:
npm gets its configuration values from the following sources, sorted by priority:
.SS Command Line Flags
.P
Putting \fB\-\-foo bar\fR on the command line sets the \fBfoo\fR configuration
@@ -1,4 +1,4 @@
.TH "NPM\-DEVELOPERS" "7" "March 2015" "" ""
.TH "NPM\-DEVELOPERS" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-developers\fR \- Developer Guide
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-DISPUTES" "7" "March 2015" "" ""
.TH "NPM\-DISPUTES" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-disputes\fR \- Handling Module Name Disputes
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "NPM\-FAQ" "7" "March 2015" "" ""
.TH "NPM\-FAQ" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-faq\fR \- Frequently Asked Questions
.SH Where can I find these docs in HTML?
@@ -1,4 +1,4 @@
.TH "NPM\-INDEX" "7" "March 2015" "" ""
.TH "NPM\-INDEX" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-index\fR \- Index of all npm documentation
.SS npm help README
@@ -1,4 +1,4 @@
.TH "NPM\-REGISTRY" "7" "March 2015" "" ""
.TH "NPM\-REGISTRY" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-registry\fR \- The JavaScript Package Registry
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-SCOPE" "7" "March 2015" "" ""
.TH "NPM\-SCOPE" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-scope\fR \- Scoped packages
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-SCRIPTS" "7" "March 2015" "" ""
.TH "NPM\-SCRIPTS" "7" "April 2015" "" ""
.SH "NAME"
\fBnpm-scripts\fR \- How npm handles the "scripts" field
.SH DESCRIPTION
@@ -1,4 +1,4 @@
.TH "NPM\-REMOVAL" "1" "March 2015" "" ""
.TH "NPM\-REMOVAL" "1" "April 2015" "" ""
.SH "NAME"
\fBnpm-removal\fR \- Cleaning the Slate
.SH SYNOPSIS
@@ -1,4 +1,4 @@
.TH "SEMVER" "7" "March 2015" "" ""
.TH "SEMVER" "7" "April 2015" "" ""
.SH "NAME"
\fBsemver\fR \- The semantic versioner for npm
.SH Usage
File renamed without changes.
File renamed without changes.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.