create-cttq
Version: 
CTTQ大前端脚手架项目
61 lines (58 loc) • 1.81 kB
JavaScript
const { red, green, bold } = require("kolorist")
function isValidPackageName(packageName) {
	return /^(?:@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\/)?[a-zA-Z0-9-~][a-zA-Z0-9-._~]*$/.test(
		packageName,
	);
}
module.exports = function(cli) {
    cli.addQuestions([
        {
            name: "name",
            type: "text",
            message: "项目名称:",
            validate: (name) => {
                if (!isValidPackageName(name)) {
                    return `项目名称 ${bold(green(name))} 无效,请输入合法的项目名称`;
                }
                return true;
            },
            onState: (state) => (cli.answers.name = state.value.trim()),
        },
        {
            name: "description",
            type: "text",
            message: "项目描述",
            initial: "",
            validate: (description) => {
                if (!description) {
                    return `请简要介绍项目功能、作用`;
                }
                return true;
            },
        },
        {
            name: "type",
            type: "select",
            message: "项目类型:",
            choices: [
                {
                    title: "移动端",
                    value: "APP",
                    description: "创建适合移动设备的项目,默认带有vant组件库",
                },
                {
                    title: "PC网页",
                    value: "PC",
                    description: "创建适合PC网页的项目,默认带有element组件库",
                }
            ],
            hint: "- ↑ ↓ 选择. 回车 确认",
            onState: (state) => {
                cli.answers.type = state.value;
            },
        },
    ]);
}
module.exports.apply = {
    after: "_",
}