UNPKG

xdc-npm

Version:

xnpm 命令行客户端

49 lines (42 loc) 1.55 kB
const childProcess = require('child_process'); const pkg = require('./package.json'); const semver = require('semver'); const fs = require('fs'); const config = require('./config'); const moment = require('moment'); require('colors'); const parseArgv = require('./parse_argv'); const todayStr = moment().format('YYYY-MM-DD'); // START 检查是否需要检查更新 let customContent; try { customContent = fs.readFileSync(config.tnpmcustomconfig, 'utf-8'); customContent = JSON.parse(customContent); if (customContent.updateDate == todayStr && customContent.needUpdate == false) { return; } } catch (e) { // 文件不存在 } customContent = customContent || {}; // END 检查是否需要检查更新 const program = parseArgv(); const args = []; if (program.proxy) { args.push(`--proxy=${program.proxy}`); } if (program.registry) { args.push(`--registry=${program.registry}`); } const result = childProcess.execSync(`xnpm info xdc-npm version ${args.join(' ')}`); const currentVersion = pkg.version; const latestVersion = result.toString().trim(); const needUpdate = semver.neq(latestVersion, currentVersion); if (needUpdate || process.env.TNPM_DEBUG) { console.log(`目前最新版本的 xnpm 为:${latestVersion.green}, 你的当前版本为:${currentVersion.red}`); console.log(`升级命令:\`$ ${'npm install -g xnpm'.green}\``); } customContent.updateDate = todayStr; customContent.needUpdate = needUpdate; // 写回缓存 fs.writeFileSync(config.tnpmcustomconfig, JSON.stringify(customContent));