unique-interface
Version:
无UI组件库
55 lines (47 loc) • 1.91 kB
JavaScript
const Path = require('path');
const program = require('commander');
const fs = require('fs-extra');
const spawn = require("child_process").spawn;
const packageJson = require('../package.json');
function cli(){
const configPath = Path.resolve('ui.config.js');
const libDir = Path.resolve(__dirname, '..');
program.version(packageJson.version);
// .option('-c, --ccc <required> [optional]', 'description', function(){});
program.command('init [dir]')
.description('init unique-interface directory')
.action(function(dir = 'unique-interface'){
let exist = fs.existsSync(configPath);
if(exist){
console.log('local unique-interface already exist, reset and try again.');
return;
}
fs.ensureDirSync(dir);
['src', 'theme', 'dist', 'package.json'].forEach(directory => {
fs.copySync(Path.resolve(libDir, directory), Path.resolve(dir, directory));
});
fs.outputFile(configPath, `module.exports = {\n targetDir: "${dir}"\n};`);
});
program.command('destroy')
.description('remove local unique-interface and reset local config')
.action(function(){
let exist = fs.existsSync(configPath);
if(!exist){
console.log('local unique-interface not exist.');
return;
}
const local = require(configPath);
fs.removeSync(local.targetDir);
fs.removeSync(configPath);
});
program.command('build')
.description('build unique-interface file')
.action(function(){
const build = require('./build/build.js');
const builds = require("./build/config.js");
build(builds);
});
program.parse(process.argv);
}
module.exports = cli;