feat: first commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env node
|
||||
const { program } = require('commander');
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
const simpleGit = require('simple-git');
|
||||
|
||||
// 定义命令和选项
|
||||
program
|
||||
.option('-n, --name <name>', 'Specify the project name')
|
||||
.action(async (options) => {
|
||||
const projectName = options.name;
|
||||
if (!projectName) {
|
||||
console.error('Please provide a project name using -n or --name.');
|
||||
return;
|
||||
}
|
||||
|
||||
const targetDir = path.join(process.cwd(), projectName);
|
||||
const gitRepoUrl = 'http://git.funjia.top/funjia/funjia-admin-template-vue.git'; // 替换为你的 Git 仓库地址
|
||||
|
||||
try {
|
||||
// 创建目标目录
|
||||
fs.ensureDirSync(targetDir);
|
||||
|
||||
// 克隆 Git 仓库到目标目录
|
||||
const git = simpleGit();
|
||||
await git.clone(gitRepoUrl, targetDir);
|
||||
|
||||
// 删除 .git 文件夹
|
||||
const gitDir = path.join(targetDir, '.git');
|
||||
if (fs.existsSync(gitDir)) {
|
||||
fs.removeSync(gitDir);
|
||||
}
|
||||
|
||||
console.log(`Project ${projectName} has been created successfully!`);
|
||||
} catch (error) {
|
||||
console.error(`Error creating project: ${error.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
Reference in New Issue
Block a user