xnpm-cli
Version:
xnpm: npm client for npm.xioaduoai.com
49 lines (42 loc) • 1.26 kB
JavaScript
;
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,
};