mall-cli-project
Version:
# 项目说明 前端脚手架工具,能够快速从自己gitlab仓库中拉出模板代码,并下载代码、下载依赖
87 lines (73 loc) • 2.22 kB
JavaScript
// #! 符号的名称叫 Shebang,用于指定脚本的解释程序
// Node CLI 应用入口文件必须要有这样的文件头
// 如果是Linux 或者 macOS 系统下还需要修改此文件的读写权限为 755
// 具体就是通过 chmod 755 cli.js 实现修改
// 用于检测入口文件是否正常运行
console.log("mall-cli working...");
const program = require("commander");
const figlet = require("figlet");
const checkVersion = require("../lib/updateVersion");
program
.command("create <app-name>")
.description("创建一个新项目")
.option("-f, --force", "如果创建的目录存在则直接覆盖")
.action(async (name, options) => {
await checkVersion();
require("../lib/create")(name, options);
});
program
.command("set <cli-token>")
.description("设置gitlab仓库地址")
.action(async (path) => {
console.log("path: ", path);
require("../lib/utils/op-token").set(path);
});
program
.command("write <cli-token>")
.description("写入gitlab的AccessToken")
.action(async (token) => {
console.log("token: ", token);
require("../lib/utils/op-token").write(token);
});
program
.command("viewToken")
.description("查看token")
.action(async (token) => {
require("../lib/utils/op-token").show();
});
program
.command("add <template-url>")
.description("添加自定义模板")
.action(async (url) => {
require("../lib/utils/op-template").add(url);
});
program
.command("remove <template-url>")
.description("移除自定义模板")
.action(async (url) => {
require("../lib/utils/op-template").remove(url);
});
program
.command("clear")
.description("清空自定义模板")
.action(async () => {
require("../lib/utils/op-template").clear();
});
program
.version(`v${require("../package.json").version}`)
.usage("<command> [option]");
program.on("--help", () => {
console.log(
"\r\n" +
figlet.textSync("mall-cli", {
font: "Big",
horizontalLayout: "default",
verticalLayout: "default",
width: 80,
whitespaceBreak: true,
})
);
});
// 解析用户执行命令传入参数
program.parse(process.argv);