| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/nodejs/npm/lib/ |
Upload File : |
module.exports = update
update.usage = 'npm update [-g] [<pkg>...]'
var url = require('url')
var log = require('npmlog')
var chain = require('slide').chain
var npm = require('./npm.js')
var Installer = require('./install.js').Installer
update.completion = npm.commands.outdated.completion
function update (args, cb) {
var dryrun = false
if (npm.config.get('dry-run')) dryrun = true
npm.commands.outdated(args, true, function (er, rawOutdated) {
if (er) return cb(er)
var outdated = rawOutdated.map(function (ww) {
return {
dep: ww[0],
depname: ww[1],
current: ww[2],
wanted: ww[3],
latest: ww[4],
req: ww[5],
what: ww[1] + '@' + ww[3]
}
})
var wanted = outdated.filter(function (ww) {
if (ww.current === ww.wanted && ww.wanted !== ww.latest) {
log.verbose(
'outdated',
'not updating', ww.depname,
"because it's currently at the maximum version that matches its specified semver range"
)
}
return ww.current !== ww.wanted
})
if (wanted.length === 0) return cb()
log.info('outdated', 'updating', wanted)
var toInstall = {}
wanted.forEach(function (ww) {
// use the initial installation method (repo, tar, git) for updating
if (url.parse(ww.req).protocol) ww.what = ww.req
var where = ww.dep.parent && ww.dep.parent.path || ww.dep.path
if (toInstall[where]) {
toInstall[where].push(ww.what)
} else {
toInstall[where] = [ww.what]
}
})
chain(Object.keys(toInstall).map(function (where) {
return [new Installer(where, dryrun, toInstall[where]), 'run']
}), cb)
})
}