naily
Version:
写了一个没有模块系统的 Minimal Nest.js 写着玩的~
58 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const inquirer = require("inquirer");
const ora = require("ora");
const path_1 = require("path");
const gitly_1 = require("gitly");
const child_process_1 = require("child_process");
const content_1 = require("./content");
const fs_1 = require("fs");
const args = process.argv.slice(2);
args.forEach((item) => {
if (item === "-v") {
console.log(content_1.default);
const readPackageJSON = (0, fs_1.readFileSync)((0, path_1.join)("package.json"));
console.log("Version: " + JSON.parse(readPackageJSON.toString()).version);
process.exit();
}
});
const LIST = [
{
type: "input",
message: "请输入项目名称:",
name: "projectName",
},
{
type: "list",
message: "请选择包管理器:",
name: "packageManager",
choices: ["npm", "yarn", "pnpm", "cnpm"],
},
];
async function downloadRepo(options) {
const loading = ora("开始下载...☕️~").start();
try {
const CURRENT_PATH = process.cwd();
const FILE_PATH = (0, path_1.join)(CURRENT_PATH, options.projectName);
const source = await (0, gitly_1.download)("Groupguanfang/naily-starter");
await (0, gitly_1.extract)(source, FILE_PATH);
loading.start("正在安装...☕️~");
(0, child_process_1.execSync)(`cd ${FILE_PATH} && ${options.packageManager}` +
(options.packageManager === "yarn" ? "" : " install"));
loading.succeed("✨安装完成");
return true;
}
catch (err) {
console.error(err);
loading.start("Nai ERR! 失败 请检查网络状况后重试!");
return err;
}
}
async function main() {
console.log(content_1.default);
console.log();
const answer = await inquirer.prompt(LIST);
await downloadRepo(answer);
}
main();
//# sourceMappingURL=npx.js.map