create-bfe-cttq
Version:
CTTQ大前端脚手架项目
61 lines (55 loc) • 1.69 kB
JavaScript
const { red, green, bold } = require("kolorist")
function isRecommendPackageName(answers) {
if ("APP" == answers.type && answers.isCTTQ) {
return answers.name.toLowerCase().endsWith("-webapp");
}
if ("PC" == answers.type && answers.isCTTQ) {
return answers.name.toLowerCase().endsWith("-webpc");
}
return true;
}
function toRenamePackageName(answers) {
if ("APP" == answers.type && answers.isCTTQ) {
return `${answers.name}-WebApp`;
}
if ("PC" == answers.type && answers.isCTTQ) {
return `${answers.name}-WebPC`;
}
}
module.exports = function(cli) {
cli.addQuestions([{
type: "confirm",
name: "isCTTQ",
message: () => {
if (cli.answers.type == "APP") {
return `是否创建企业内部应用:${green("【天书移动端】")}?`;
}
return `是否创建企业内部应用:${green("【天晴网页】")}?`;
},
initial: true,
onState: (state) => {
cli.answers.isCTTQ = state.value;
},
}, {
name: "isRename",
type: () => isRecommendPackageName(cli.answers) ? null : "confirm",
message: () => {
let name = `项目名称建议修改为${green(
toRenamePackageName(cli.answers),
)},是否确认修改?`;
return name;
},
initial: true,
onState(state) {
cli.answers.isRename = state.value;
},
},]);
cli.onComplete((answers) => {
if (answers.isCTTQ && answers.isRename) {
answers.name = toRenamePackageName(cli.answers);
}
})
}
module.exports.apply = {
after: "base",
}