UNPKG

xnpm-cli

Version:

xnpm: npm client for npm.xioaduoai.com

49 lines (42 loc) 1.26 kB
'use strict'; const debug = require('debug')('xnpm:config'); const path = require('path'); const fs = require('fs'); const cp = require('child_process'); const ini = require('ini'); let root; if (process.platform === 'win32') { root = process.env.USERPROFILE || process.env.APPDATA || process.env.TMP || process.env.TEMP; } else { root = process.env.HOME || process.env.TMPDIR || '/tmp'; } let prefix = null; try { prefix = cp.execSync('npm config get prefix').toString().trim(); } catch (err) { // ignore it debug('npm config cli error: %s', err); } let proxy = ''; const userconfig = path.join(root, '.xnpmrc'); if (fs.existsSync(userconfig)) { let cnpmrc; try { cnpmrc = ini.parse(fs.readFileSync(userconfig, 'utf-8')); } catch (err) { console.warn('[cnpm:config] [WARN] read %s ini format error', userconfig); } if (cnpmrc && cnpmrc.proxy) { proxy = cnpmrc.proxy; } } module.exports = { cnpmHost: 'http://npm.xiaoduoai.com', cnpmRegistry: 'http://r.npm.xiaoduoai.com', disturl: 'https://npm.xiaoduoai.com/mirrors/node', // download dist tarball for node-gyp iojsDisturl: 'https://npm.xiaoduoai.com/mirrors/iojs', cache: path.join(root, '.xnpm'), // cache folder name userconfig, proxy, prefix, };