UNPKG

itoolbox-cli

Version:

iToolBox CLI 工具,用于创建扩展,打包扩展.

55 lines (51 loc) 1.89 kB
const path = require('path'); // 交互式命令界面 const inquirer = require('inquirer'); const logger = require('./logger'); const { isHaveFile, readFile, writeFile, getLocalTip } = require('../common/utils'); const { CONFIG_QUESTION } = require('../constants/question'); const TIP_INFO = getLocalTip().config; module.exports = function (args) { logger.infoTip(TIP_INFO.info); const projectPath = path.resolve(process.cwd(), './'); const pkgFilePath = path.join(projectPath, './package.json'); const isProject = isHaveFile(pkgFilePath); if (!isProject) { logger.errorTip(TIP_INFO.noPkg); return false; } inquirer.prompt(CONFIG_QUESTION).then(function (answers) { if (!answers.name) { logger.errorTip(TIP_INFO.nameNotEmpty); return false; } if (!answers.rarName) { logger.errorTip(TIP_INFO.rarNameNotEmpty); return false; } const pkgContent = readFile(pkgFilePath); const PKG = JSON.parse(`${pkgContent}`); const extInfo = { name: answers.name, description: answers.desc || PKG.description || '', version: answers.version || PKG.version || '', author: answers.author || PKG.author || '', rarName: answers.rarName, index: answers.index || 'index.html', logo: answers.logo || './src/assets/logo.png', width: answers.width || 700, height: answers.height || 700, }; const newPkgContent = { ...PKG, extInfo, }; writeFile(pkgFilePath, JSON.stringify(newPkgContent, null, '\t'), (flag) => { if (flag) { logger.successTip(TIP_INFO.success); } else { logger.errorTip(TIP_INFO.fail); } }); }); };