UNPKG

imod

Version:

A bundler for tiny modules, powered by Rollup.

76 lines 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const yargs = require("yargs"); const path = require("path"); const colors_1 = require("colors"); const utils_1 = require("./utils"); const index_1 = require("./index"); const initTemplate_1 = require("./initTemplate"); const updater = require("npm-updater"); const pkg = require("../package.json"); const KEYWORDS = ['run', 'build', 'dev', 'init']; // check version updater({ package: pkg, abort: false, interval: '1d', registry: 'https://registry.npm.taobao.org', updateMessage: colors_1.yellow(`\nplease run \`yarn global add ${pkg['name']}@latest\` to update\n`) }); const setNodeEnv = (mode) => { mode && typeof mode === 'string' && (process.env.NODE_ENV = mode); }; /* tslint:disable no-unused-expression */ yargs .usage('$0 <cmd> [args]') .command('dev', '[watching mod]', () => { const { verbose = false, mode } = yargs.argv; setNodeEnv(mode); new index_1.default({ cwd: process.cwd(), verbose }).dev(); }) .command('build', '[build mod]', () => { const { verbose = false, mode } = yargs.argv; setNodeEnv(mode); new index_1.default({ cwd: process.cwd(), verbose }).build(); }) // imod init . --templateName=module --lite=true .command('init', '[init a demo: e.g: `imod init .`]', () => { yargs .alias('m', 'templateName') .alias('l', 'lite'); const cwd = process.cwd(); let { lite = false, templateName = false } = yargs.argv; let [targetFolder = '.'] = yargs.argv._.slice(1); templateName = typeof templateName === 'boolean' ? 'module' : templateName; targetFolder = path.resolve(cwd, targetFolder + ''); initTemplate_1.default({ templateName, targetFolder, lite }); // console.log(templateName, targetFolder, lite) }) .version() .alias('v', 'version') .help() .alias('h', 'help') .argv; const subCmd = (() => { let s = process.argv[2] || ''; if (/^[a-z]+/.test(s)) return s; return; })(); if (subCmd && !KEYWORDS.includes(subCmd)) { yargs.command(subCmd, 'subCmd', {}, async () => { try { const Module = utils_1.mRequire(require(`moto-plugin-${subCmd}`)); await new Module().run(); } catch (e) { console.log(e.code); } }).argv; } if (process.argv.length < 3) { let logo = ' _ __ __ _\n (_) \\/ | | |\n _| \\ / | ___ __| |\n | | |\\/| |/ _ \\ / _` |\n | | | | | (_) | (_| |\n |_|_| |_|\\___/ \\__,_|'; logo += ` @${pkg['version']}` + '\n'; console.log(colors_1.green(logo)); console.log(colors_1.gray('https://github.com/haozi/iMod')); console.log(yargs.getUsageInstance().help()); } //# sourceMappingURL=cli.js.map