lizi-wxapp-cli
Version:
微信小程序快速创建cli脚手架
123 lines • 14.3 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = __importDefault(require("chalk"));
const commander_1 = __importDefault(require("commander"));
const cli_1 = require("./lib/cli");
const create_component_fs_1 = require("./lib/create-component-fs");
const create_page_fs_1 = require("./lib/create-page-fs");
const create_project_fs_1 = require("./lib/create-project-fs");
const delete_component_fs_1 = require("./lib/delete-component-fs");
const delete_page_fs_1 = require("./lib/delete-page-fs");
const package_json_1 = require("./package.json");
const log_1 = require("./ulits/log");
commander_1.default.version(package_json_1.version, '-v, --version');
commander_1.default.command('create')
.description('创建')
.action((cmd) => __awaiter(this, void 0, void 0, function* () {
switch (cmd) {
case 'project':
create_project_fs_1.CreateProjectFs.init();
break;
case 'page':
yield create_page_fs_1.CreatePageFs.init();
break;
case 'component':
yield create_component_fs_1.CreateComponentFs.init();
break;
default:
log_1.log.table([
['create <project>', '新建小程序项目'],
['create <page>', '新建小程序页面'],
['create <component>', '新建小程序组件']
]);
break;
}
}));
commander_1.default.command('delete')
.description('删除')
.action((cmd) => __awaiter(this, void 0, void 0, function* () {
switch (cmd) {
case 'page':
yield delete_page_fs_1.DeletePageFs.init();
break;
case 'component':
yield delete_component_fs_1.DeleteComponentFs.init();
break;
default:
log_1.log.table([
['delete <page>', '删除小程序页面'],
['delete <component>', '删除小程序组件']
]);
break;
}
}));
commander_1.default.command('open')
.description('打开')
.action((cmd) => {
if (typeof cmd === 'object') {
log_1.log.table([
['open <this>', '打开当前小程序,如果目录配置不正确则默认打开开发工具'],
['open <tool>', '打开开发工具'],
['open <projectPath>', '打开指定路径小程序项目,如果目录配置不正确则默认打开开发工具'],
['了解更多', 'https://developers.weixin.qq.com/miniprogram/dev/devtools/cli.html']
]);
}
else {
switch (cmd) {
case 'this':
cli_1.CliFs.openThis();
break;
case 'tool':
cli_1.CliFs.openTool();
break;
default:
cli_1.CliFs.openThis(cmd);
break;
}
}
});
commander_1.default.command('upload')
.description('上传项目')
.action((cmd) => cli_1.CliFs.upload(cmd));
commander_1.default.command('login')
.description('登录')
.action(() => cli_1.CliFs.login());
commander_1.default.command('preview')
.description('预览')
.action((cmd) => cli_1.CliFs.preview(cmd));
commander_1.default.command('auto')
.description('自动预览')
.action((cmd) => cli_1.CliFs.auto(cmd));
commander_1.default.command('close')
.description('关闭当前项目')
.action((cmd) => cli_1.CliFs.close(cmd));
commander_1.default.command('quit')
.description('退出开发工具')
.action(() => cli_1.CliFs.quit());
commander_1.default.command('config <cmd> [params]')
.description('工具设置')
.action((cmd, params) => cli_1.CliFs.config(cmd, params));
commander_1.default.on('command:*', (cmd) => {
const command = ['create', 'delete', 'open', 'upload', 'login', 'preview', 'auto', 'close', 'quit'];
const state = command.findIndex(v => v === cmd[0]);
if (state === -1) {
log_1.log.error(`输入的命令无效,请输入${chalk_1.default.green(' wxapp-cli -h ')}查看帮助`, false);
}
});
commander_1.default.parse(process.argv);
if (process.argv.length < 3) {
log_1.log.error(`输入${chalk_1.default.green(' wxapp-cli -h ')}查看帮助`, false);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUNBLGtEQUF5QjtBQUN6QiwwREFBK0I7QUFDL0IsbUNBQWlDO0FBQ2pDLG1FQUE2RDtBQUM3RCx5REFBbUQ7QUFDbkQsK0RBQXlEO0FBQ3pELG1FQUE2RDtBQUM3RCx5REFBbUQ7QUFDbkQsaURBQXdDO0FBQ3hDLHFDQUFpQztBQUVqQyxtQkFBTyxDQUFDLE9BQU8sQ0FBQyxzQkFBTyxFQUFFLGVBQWUsQ0FBQyxDQUFBO0FBRXpDLG1CQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDO0tBQ2pCLE1BQU0sQ0FBQyxDQUFPLEdBQUcsRUFBRSxFQUFFO0lBQ3BCLFFBQVEsR0FBRyxFQUFFO1FBQ1gsS0FBSyxTQUFTO1lBQ1osbUNBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN0QixNQUFLO1FBQ1AsS0FBSyxNQUFNO1lBQ1QsTUFBTSw2QkFBWSxDQUFDLElBQUksRUFBRSxDQUFBO1lBQ3pCLE1BQUs7UUFDUCxLQUFLLFdBQVc7WUFDZCxNQUFNLHVDQUFpQixDQUFDLElBQUksRUFBRSxDQUFBO1lBQzlCLE1BQUs7UUFDUDtZQUNFLFNBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ1IsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUM7Z0JBQy9CLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQztnQkFDNUIsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUM7YUFDbEMsQ0FBQyxDQUFBO1lBQ0YsTUFBSztLQUNSO0FBQ0gsQ0FBQyxDQUFBLENBQUMsQ0FBQTtBQUVKLG1CQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDO0tBQ2pCLE1BQU0sQ0FBQyxDQUFPLEdBQUcsRUFBRSxFQUFFO0lBQ3BCLFFBQVEsR0FBRyxFQUFFO1FBQ1gs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QUFFckQsbUJBQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzdHLE1BQU0sS0FBSyxHQUFXLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDaEIsU0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLGVBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0tBQ3BFO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRixtQkFBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7QUFHM0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDM0IsU0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLGVBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFBO0NBQzNEIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IHByb2dyYW0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IHsgQ2xpRnMgfSBmcm9tICcuL2xpYi9jbGknXG5pbXBvcnQgeyBDcmVhdGVDb21wb25lbnRGcyB9IGZyb20gJy4vbGliL2NyZWF0ZS1jb21wb25lbnQtZnMnXG5pbXBvcnQgeyBDcmVhdGVQYWdlRnMgfSBmcm9tICcuL2xpYi9jcmVhdGUtcGFnZS1mcydcbmltcG9ydCB7IENyZWF0ZVByb2plY3RGcyB9IGZyb20gJy4vbGliL2NyZWF0ZS1wcm9qZWN0LWZzJ1xuaW1wb3J0IHsgRGVsZXRlQ29tcG9uZW50RnMgfSBmcm9tICcuL2xpYi9kZWxldGUtY29tcG9uZW50LWZzJ1xuaW1wb3J0IHsgRGVsZXRlUGFnZUZzIH0gZnJvbSAnLi9saWIvZGVsZXRlLXBhZ2UtZnMnXG5pbXBvcnQgeyB2ZXJzaW9uIH0gZnJvbSAnLi9wYWNrYWdlLmpzb24nXG5pbXBvcnQgeyBsb2cgfSBmcm9tICcuL3VsaXRzL2xvZydcblxucHJvZ3JhbS52ZXJzaW9uKHZlcnNpb24sICctdiwgLS12ZXJzaW9uJylcblxucHJvZ3JhbS5jb21tYW5kKCdjcmVhdGUnKVxuICAuZGVzY3JpcHRpb24oJ+WIm+W7uicpXG4gIC5hY3Rpb24oYXN5bmMgKGNtZCkgPT4ge1xuICAgIHN3aXRjaCAoY21kKSB7XG4gICAgICBjYXNlICdwcm9qZWN0JzpcbiAgICAgICAgQ3JlYXRlUHJvamVjdEZzLmluaXQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAncGFnZSc6XG4gICAgICAgIGF3YWl0IENyZWF0ZVBhZ2VGcy5pbml0KClcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2NvbXBvbmVudCc6XG4gICAgICAgIGF3YWl0IENyZWF0ZUNvbXBvbmVudEZzLmluaXQoKVxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbG9nLnRhYmxlKFtcbiAgICAgICAgICBbJ2NyZWF0ZSA8cHJvamVjdD4nLCAn5paw5bu65bCP56iL5bqP6aG555uuJ10sXG4gICAgICAgICAgWydjcmVhdGUgPHBhZ2U+JywgJ+aWsOW7uuWwj+eoi+W6j+mhtemdoiddLFxuICAgICAgICAgIFsnY3JlYXRlIDxjb21wb25lbnQ+JywgJ+aWsOW7uuWwj+eoi+W6j+e7hOS7tiddXG4gICAgICAgIF0pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9KVxuXG5wcm9ncmFtLmNvbW1hbmQoJ2RlbGV0ZScpXG4gIC5kZXNjcmlwdGlvbign5Yig6ZmkJylcbiAgLmFjdGlvbihhc3luYyAoY21kKSA9PiB7XG4gICAgc3dpdGNoIChjbWQpIHtcbiAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICBhd2FpdCBEZWxldGVQYWdlRnMuaW5pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdjb21wb25lbnQnOlxuICAgICAgICBhd2FpdCBEZWxldGVDb21wb25lbnRGcy5pbml0KClcbiAgICAgICAgYnJlYWtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxvZy50YWJsZShbXG4gICAgICAgICAgWydkZWxldGUgPHBhZ2U+JywgJ+WIoOmZpOWwj+eoi+W6j+mhtemdoiddLFxuICAgICAgICAgIFsnZGVsZXRlIDxjb21wb25lbnQ+JywgJ+WIoOmZpOWwj+eoi+W6j+e7hOS7tiddXG4gICAgICAgIF0pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9KVxuXG5wcm9ncmFtLmNvbW1hbmQoJ29wZW4nKVxuICAuZGVzY3JpcHRpb24oJ+aJk+W8gCcpXG4gIC5hY3Rpb24oKGNtZCkgPT4ge1xuICAgIGlmICh0eXBlb2YgY21kID09PSAnb2JqZWN0Jykge1xuICAgICAgbG9nLnRhYmxlKFtcbiAgICAgICAgWydvcGVuIDx0aGlzPicsICfmiZPlvIDlvZPliY3lsI/nqIvluo/vvIzlpoLmnpznm67lvZXphY3nva7kuI3mraPnoa7liJnpu5jorqTmiZPlvIDlvIDlj5Hlt6XlhbcnXSxcbiAgICAgICAgWydvcGVuIDx0b29sPicsICfmiZPlvIDlvIDlj5Hlt6XlhbcnXSxcbiAgICAgICAgWydvcGVuIDxwcm9qZWN0UGF0aD4nLCAn5omT5byA5oyH5a6a6Lev5b6E5bCP56iL5bqP6aG555uu77yM5aaC5p6c55uu5b2V6YWN572u5LiN5q2j56Gu5YiZ6buY6K6k5omT5byA5byA5Y+R5bel5YW3J10sXG4gICAgICAgIFsn5LqG6Kej5pu05aSaJywgJ2h0dHBzOi8vZGV2ZWxvcGVycy53ZWl4aW4ucXEuY29tL21pbmlwcm9ncmFtL2Rldi9kZXZ0b29scy9jbGkuaHRtbCddXG4gICAgICBdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKGNtZCkge1xuICAgICAgICBjYXNlICd0aGlzJzpcbiAgICAgICAgICBDbGlGcy5vcGVuVGhpcygpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAndG9vbCc6XG4gICAgICAgICAgQ2xpRnMub3BlblRvb2woKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgQ2xpRnMub3BlblRoaXMoY21kKVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG5wcm9ncmFtLmNvbW1hbmQoJ3VwbG9hZCcpXG4gIC5kZXNjcmlwdGlvbign5LiK5Lyg6aG555uuJylcbiAgLmFjdGlvbigoY21kKSA9PiBDbGlGcy51cGxvYWQoY21kKSlcblxucHJvZ3JhbS5jb21tYW5kKCdsb2dpbicpXG4gIC5kZXNjcmlwdGlvbign55m75b2VJylcbiAgLmFjdGlvbigoKSA9PiBDbGlGcy5sb2dpbigpKVxuXG5wcm9ncmFtLmNvbW1hbmQoJ3ByZXZpZXcnKVxuICAuZGVzY3JpcHRpb24oJ+mihOiniCcpXG4gIC5hY3Rpb24oKGNtZCkgPT4gQ2xpRnMucHJldmlldyhjbWQpKVxuXG5wcm9ncmFtLmNvbW1hbmQoJ2F1dG8nKVxuICAuZGVzY3JpcHRpb24oJ+iHquWKqOmihOiniCcpXG4gIC5hY3Rpb24oKGNtZCkgPT4gQ2xpRnMuYXV0byhjbWQpKVxuXG5wcm9ncmFtLmNvbW1hbmQoJ2Nsb3NlJylcbiAgLmRlc2NyaXB0aW9uKCflhbPpl63lvZPliY3pobnnm64nKVxuICAuYWN0aW9uKChjbWQpID0+IENsaUZzLmNsb3NlKGNtZCkpXG5cbnByb2dyYW0uY29tbWFuZCgncXVpdCcpXG4gIC5kZXNjcmlwdGlvbign6YCA5Ye65byA5Y+R5bel5YW3JylcbiAgLmFjdGlvbigoKSA9PiBDbGlGcy5xdWl0KCkpXG5cbnByb2dyYW0uY29tbWFuZCgnY29uZmlnIDxjbWQ+IFtwYXJhbXNdJylcbiAgLmRlc2NyaXB0aW9uKCflt6Xlhbforr7nva4nKVxuICAuYWN0aW9uKChjbWQsIHBhcmFtcykgPT4gQ2xpRnMuY29uZmlnKGNtZCwgcGFyYW1zKSlcblxucHJvZ3JhbS5vbignY29tbWFuZDoqJywgKGNtZCkgPT4ge1xuICBjb25zdCBjb21tYW5kOiBzdHJpbmdbXSA9IFsnY3JlYXRlJywgJ2RlbGV0ZScsICdvcGVuJywgJ3VwbG9hZCcsICdsb2dpbicsICdwcmV2aWV3JywgJ2F1dG8nLCAnY2xvc2UnLCAncXVpdCddXG4gIGNvbnN0IHN0YXRlOiBudW1iZXIgPSBjb21tYW5kLmZpbmRJbmRleCh2ID0+IHYgPT09IGNtZFswXSlcbiAgaWYgKHN0YXRlID09PSAtMSkge1xuICAgIGxvZy5lcnJvcihg6L6T5YWl55qE5ZG95Luk5peg5pWI77yM6K+36L6T5YWlJHtjaGFsay5ncmVlbignIHd4YXBwLWNsaSAtaCAnKX3mn6XnnIvluK7liqlgLCBmYWxzZSlcbiAgfVxufSlcblxucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpXG5cbi8vIOWIpOaWreeUqOaIt+aYr+WQpui+k+WFpeS6huaJp+ihjOWtl+autVxuaWYgKHByb2Nlc3MuYXJndi5sZW5ndGggPCAzKSB7XG4gIGxvZy5lcnJvcihg6L6T5YWlJHtjaGFsay5ncmVlbignIHd4YXBwLWNsaSAtaCAnKX3mn6XnnIvluK7liqlgLCBmYWxzZSlcbn1cblxuXG4iXX0=