UNPKG

yogi-cli

Version:

npm 工具包

164 lines (159 loc) 3.87 kB
/* * @Author: yogi * @Date: 2025-01-13 * @LastEditors: yogi * @Description: 用户交互模块,需要用户输入、选择 */ const inquirer = require("inquirer"); function builderSelected() { return inquirer.prompt([ { type: 'list', name: 'builder', message: '选择要使用的构建工具', choices: [ { name: 'pnpm', value: 'pnpm' }, { name: 'yarn', value: 'yarn' }, { name: 'npm', value: 'npm' }, { name: 'cnpm', value: 'cnpm' }, { name: '手动安装', value: '' } ] } ]) } function isRemoveDirQuestion() { return inquirer.prompt([ { type: "confirm", message: "是否覆盖原文件夹?", name: "ok", }, ]); } function choiceTemplateQuestion() { return inquirer.prompt([ { type: "list", name: "choice", message: "请选择应用模板:", choices: [ { value: { url: "gitlab:codebabydxj/vue3_vite#main", id: 0 }, name: "「 vue3.4 + vite4.5 + ts + pinia + element-plus 」", description: "vite4.5-后台管理系统项目", }, { value: { url: "gitlab:codebabydxj/vue3_vite#vite5x", id: 1 }, name: "「 vue3.5 + vite5 + ts + pinia + element-plus 」(New)", description: "vue3.5+vite5-后台管理系统项目", }, { value: { url: "github:codebabydxj/vue2_cli3#master", id: 2 }, name: "「 vue2x-cli3 + vuex + element + axios 」", description: "vue2-后台管理系统项目(不再没维护)", }, ], }, ]); } function nodeProjectQuestion() { return inquirer.prompt([ { type: "input", name: "projectName", message: "请输入项目名称", validate: function (name) { name = name.replace(/\s+/g, '') if (name) return true; return "请输入项目名称"; }, }, { type: "input", name: "projectCode", message: "请输入项目编码", validate(name) { if (!name) return "请输入项目编码"; if (!/^[a-zA-Z]\w{1,15}$/.test(name)) return "请输入以字母开头的编码(至少两位)"; return true; }, }, { type: "input", name: "projectId", message: "请输入项目ID", validate: function (input) { if (input) { if (!Number(input)) { return "请输入数字"; } else { return true; } } else { return "请输入项目ID"; } }, }, { type: "input", name: "description", message: "请输入项目描述", validate: function (name) { return true; }, }, { type: "input", name: "author", message: "请输入作者名称(英文)", validate: function (name) { name = name.replace(/\s+/g, '') return true; }, }, { type: "input", name: "port", message: "请输入运行端口,默认3000", default() { return 3000; }, validate: function (input) { if (!Number(input)) { return "请输入数字"; } else { return true; } }, }, // { // type: "checkbox", // name: "modules", // message: "选择要使用的中间件或依赖", // choices: [ // { name: "cors" }, // { name: "bodyParser" }, // { name: "fs" }, // { name: "static" }, // { name: "axios" }, // { name: "qs" }, // { name: "lodash" }, // ], // }, ]); } module.exports = { isRemoveDirQuestion, choiceTemplateQuestion, nodeProjectQuestion, builderSelected };