j-2024-cli
Version:
一个mini版的脚手架
42 lines (36 loc) • 1.38 kB
JavaScript
const program = require("commander");
const path = require("path");
const chalk = require("chalk");
const pkg = require(path.join(__dirname, "../package.json"));
program.version(`j-cli@${pkg.version}`).usage("<command> [option]");
// 1.通过脚手架来创建一个项目 create(拉取仓库中的模板,下载方式可以采用github gitlab gitee)
// 2.配置拉取的信息,配置系统文件 config
// vue create abc
program
.command("create <project-name>")
.description("create a project")
.option("-f, --force", "overwrite target directory")
.action(async (name, option) => {
require("./commands/create.js")(name, option);
});
// my-cli config --set a 1
// my-cli config --get a
program
.command("config [value]")
.description("inspect config ")
.option("-g, --get <path>", "get value")
.option("-s, --set <path> <value>", "set value")
.option("-d, --delete <path>", "delete value")
.action(async (value, option) => {
console.log(value, option);
require("./commands/config.js").setConfig(value, option);
});
program.addHelpText(
"after",
`\nRun ${chalk.blueBright(
"my-cli <command> --help"
)} for detailed usage of given command.`
);
// process.argv 用户传递的参数
program.parse(process.argv); //直接解析用户参数自动提供了--help