UNPKG

bia

Version:

a tool for download git repository

128 lines (114 loc) 2.88 kB
/* * @Author: hzxulin@yeah.net * @Date: 2018-12-04 16:03:45 * @Last Modified by: hzxulin@yeah.net * @Last Modified time: 2018-12-12 15:16:57 */ const path = require('path') const table = require('console.table') const fse = require('fs-extra') const execa = require('execa') const NPM_CONFIG = require('../../config/npm.json') /** * 获取当前npm的配置源 */ const getCurrentRegistry = () => { return new Promise((resolve, reject) => { let cmd = 'npm config get registry' execa.shell(cmd).then((res) => { resolve(res.stdout) }).catch(err => { reject(err) }) }) } /** * 格式化数组,使用table显示 */ const showNpmList = (_list) => { return new Promise((resolve, reject) => { try { let tab = table.getTable(_list) console.log('\n') console.log(tab) resolve() } catch (err) { reject(err) } }) } /** * 移动文件 * @param {string} ori 源文件 * @param {string} dist 目标文件 */ const moveFileToDist = (ori, dist) => { return new Promise((resolve, reject) => { try { fse.copySync(ori, dist) resolve(ori, dist) } catch (err) { reject(err) } }) } /** * 更新配置文件 * @param {object} res 配置文件信息 */ const updateConfig = (res) => { return new Promise((resolve, reject) => { let dist = path.resolve(__dirname, '../../config/npm.json') let content = JSON.stringify(res, null, 4) fse.outputFile(dist, content, err => { if (err) { reject(err) } else { resolve(res) } }) }) } /** * 获取配置文件的配置信息列表 */ const getConfigList = () => { return new Promise((resolve, reject) => { if (NPM_CONFIG.list && NPM_CONFIG.list.length) { let list = [] NPM_CONFIG.list.forEach((_v, _i) => { list.push({ name: `${_v.name} ${_v.registry}`, value: _i, }) }) resolve(list) } else { reject('== 未配置任何的npm列表,请先配置 ==') } }) } /** * 设置npm的源 * @param {string} registry 使用的npm目标源 */ const useNpmConfig = (registry) => { return new Promise((resolve, reject) => { let cmd = `npm config set registry ${registry}` execa.shell(cmd).then(() => { return getCurrentRegistry() }).then(res => { resolve(res) }).catch(err => { reject(err) }) }) } module.exports = { getCurrentRegistry, showNpmList, moveFileToDist, updateConfig, getConfigList, useNpmConfig, }