@kd-kfront/knpm
Version:
knpm: npm client for knpm
49 lines (42 loc) • 1.34 kB
JavaScript
;
const debug = require('debug')('knpm: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, '.knpmrc');
if (fs.existsSync(userconfig)) {
let knpmrc;
try {
knpmrc = ini.parse(fs.readFileSync(userconfig, 'utf-8'));
} catch (err) {
console.warn('[knpm:config] [WARN] read %s ini format error', userconfig);
}
if (knpmrc && knpmrc.proxy) {
proxy = knpmrc.proxy;
}
}
module.exports = {
knpmHost: 'https://kfront-dev-dev.devdolphin.com/ty-knpm',
knpmRegistry: 'https://kfront-dev-dev.devdolphin.com/ty-knpm',
disturl: 'https://npm.taobao.org/mirrors/node', // download dist tarball for node-gyp
iojsDisturl: 'https://npm.taobao.org/mirrors/iojs',
cache: path.join(root, '.knpm'), // cache folder name
userconfig,
proxy,
prefix,
};