文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
入口文件
import Command from "@oweqian/command";
import { log } from "@oweqian/utils";
import createTemplate from "./createTemplate.js";
import downloadTemplate from "./downloadTemplate.js";
import installTemplate from "./installTemplate.js";
/**
* 继承 Command 类
* examples:
* cli-oweqian init
* cli-oweqian init aa -t project -tp template-react18 --force --debug
*/
class InitCommand extends Command {
get command() {
return "init [name]";
}
get description() {
return "init project";
}
get options() {
return [
["-f, --force", "是否强制更新", false],
["-t, --type <type>", "创建类型(值:project/page)"],
["-tp, --template <template>", "模板名称"],
];
}
async action([name, opts]) {
log.verbose("init", name, opts);
/**
* 1.选择项目模板,生成项目信息
*/
const selectedTemplate = await createTemplate(name, opts);
log.verbose("selectedTemplate", selectedTemplate);
/**
* 2.下载项目模板至缓存目录
*/
await downloadTemplate(selectedTemplate);
/**
* 3.安装项目模板至项目目录
*/
await installTemplate(selectedTemplate, opts);
}
preAction() {
console.log("pre");
}
postAction() {
console.log("post");
}
}
function Init(instance) {
return new InitCommand(instance);
}
export default Init;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论