npmconf.load(cli, builtin, function (er, config) { if (er === config) er = null npm.config = config if (er) return cb(er) // if the 'project' config is not a filename, and we're // not in global mode, then that means that it collided // with either the default or effective userland config if (!config.get('global') && config.sources.project && config.sources.project.type !== 'ini') { log.verbose( 'config', 'Skipping project config: %s. (matches userconfig)', config.localPrefix + '/.npmrc' ) } // Include npm-version and node-version in user-agent var ua = config.get('user-agent') || '' ua = ua.replace(/\{node-version\}/gi, process.version) ua = ua.replace(/\{npm-version\}/gi, npm.version) ua = ua.replace(/\{platform\}/gi, process.platform) ua = ua.replace(/\{arch\}/gi, process.arch) config.set('user-agent', ua) var color = config.get('color') log.level = config.get('loglevel') log.heading = config.get('heading') || 'npm' log.stream = config.get('logstream') switch (color) { case 'always': log.enableColor() npm.color = true break case false: log.disableColor() npm.color = false break default: if (process.stdout.isTTY) npm.color = true else if (!tty.isatty) npm.color = true else if (tty.isatty(1)) npm.color = true else npm.color = false break } if (config.get('unicode')) { log.enableUnicode() } else { log.disableUnicode() } if (config.get('progress') && (process.stderr.isTTY || (tty.isatty && tty.isatty(2)))) { log.enableProgress() } else { log.disableProgress() } log.resume() // at this point the configs are all set. // go ahead and spin up the registry client. npm.registry = new CachingRegClient(npm.config) var umask = npm.config.get('umask') npm.modes = { exec: parseInt('0777', 8) & (~umask), file: parseInt('0666', 8) & (~umask), umask: umask } var gp = Object.getOwnPropertyDescriptor(config, 'globalPrefix') Object.defineProperty(npm, 'globalPrefix', gp) var lp = Object.getOwnPropertyDescriptor(config, 'localPrefix') Object.defineProperty(npm, 'localPrefix', lp) return cb(null, npm) })
npmconf.load(cli, builtin, function (er, config) { if (er === config) er = null npm.config = config if (er) return cb(er) // if the 'project' config is not a filename, and we're // not in global mode, then that means that it collided // with either the default or effective userland config if (!config.get('global') && config.sources.project && config.sources.project.type !== 'ini') { log.verbose( 'config', 'Skipping project config: %s. (matches userconfig)', config.localPrefix + '/.npmrc' ) } // Include npm-version and node-version in user-agent var ua = config.get('user-agent') || '' ua = ua.replace(/\{node-version\}/gi, process.version) ua = ua.replace(/\{npm-version\}/gi, npm.version) ua = ua.replace(/\{platform\}/gi, process.platform) ua = ua.replace(/\{arch\}/gi, process.arch) config.set('user-agent', ua) if (config.get('metrics-registry') == null) { config.set('metrics-registry', config.get('registry')) } var color = config.get('color') log.level = config.get('loglevel') log.heading = config.get('heading') || 'npm' log.stream = config.get('logstream') switch (color) { case 'always': log.enableColor() npm.color = true break case false: log.disableColor() npm.color = false break default: if (process.stdout.isTTY) npm.color = true else if (!tty.isatty) npm.color = true else if (tty.isatty(1)) npm.color = true else npm.color = false break } if (config.get('unicode')) { log.enableUnicode() } else { log.disableUnicode() } if (config.get('progress') && (process.stderr.isTTY || (tty.isatty && tty.isatty(2)))) { log.enableProgress() } else { log.disableProgress() } glob(path.resolve(npm.cache, '_logs', '*-debug.log'), function (er, files) { if (er) return cb(er) while (files.length >= npm.config.get('logs-max')) { rimraf.sync(files[0]) files.splice(0, 1) } }) log.resume() var umask = npm.config.get('umask') npm.modes = { exec: parseInt('0777', 8) & (~umask), file: parseInt('0666', 8) & (~umask), umask: umask } var gp = Object.getOwnPropertyDescriptor(config, 'globalPrefix') Object.defineProperty(npm, 'globalPrefix', gp) var lp = Object.getOwnPropertyDescriptor(config, 'localPrefix') Object.defineProperty(npm, 'localPrefix', lp) config.set('scope', scopeifyScope(config.get('scope'))) npm.projectScope = config.get('scope') || scopeifyScope(getProjectScope(npm.prefix)) // at this point the configs are all set. // go ahead and spin up the registry client. lazyProperty(npm, 'registry', function () { registryLoaded = true var CachingRegClient = require('./cache/caching-client.js') var registry = new CachingRegClient(npm.config) registry.version = npm.version registry.refer = registryRefer return registry }) startMetrics() return cb(null, npm) })