Server IP : 162.0.209.157 / Your IP : 3.145.106.176 [ Web Server : LiteSpeed System : Linux premium178.web-hosting.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64 User : balaoqob ( 2395) PHP Version : 8.0.30 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /lib/node_modules/npm/node_modules/libcipm/lib/config/ |
Upload File : |
'use strict' const BB = require('bluebird') const fs = require('fs') const figgyPudding = require('figgy-pudding') const ini = require('ini') const path = require('path') const spawn = require('child_process').spawn const readFileAsync = BB.promisify(fs.readFile) const NpmConfig = figgyPudding({ cache: { default: '' }, then: {}, userconfig: {} }) module.exports = NpmConfig module.exports.fromNpm = getNpmConfig function getNpmConfig (argv) { return new BB((resolve, reject) => { const npmBin = process.platform === 'win32' ? 'npm.cmd' : 'npm' const child = spawn(npmBin, [ 'config', 'ls', '--json', '-l' // We add argv here to get npm to parse those options for us :D ].concat(argv || []), { env: process.env, cwd: process.cwd(), stdio: [0, 'pipe', 2] }) let stdout = '' if (child.stdout) { child.stdout.on('data', (chunk) => { stdout += chunk }) } child.on('error', reject) child.on('close', (code) => { if (code === 127) { reject(new Error('`npm` command not found. Please ensure you have npm@5.4.0 or later installed.')) } else { try { resolve(JSON.parse(stdout)) } catch (e) { reject(new Error('`npm config ls --json` failed to output json. Please ensure you have npm@5.4.0 or later installed.')) } } }) }).then(opts => { return BB.all( process.cwd().split(path.sep).reduce((acc, next) => { acc.path = path.join(acc.path, next) acc.promises.push(maybeReadIni(path.join(acc.path, '.npmrc'))) acc.promises.push(maybeReadIni(path.join(acc.path, 'npmrc'))) return acc }, { path: '', promises: [] }).promises.concat( opts.userconfig ? maybeReadIni(opts.userconfig) : {} ) ).then(configs => NpmConfig(...configs, opts)) }).then(opts => { if (opts.cache) { return opts.concat({ cache: path.join(opts.cache, '_cacache') }) } else { return opts } }) } function maybeReadIni (f) { return readFileAsync(f, 'utf8').catch(err => { if (err.code === 'ENOENT') { return '' } else { throw err } }).then(ini.parse) }