前端脚手架,主动创建远程堆栈并推送

[复制链接]
发表于 2026-1-28 19:51:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
包罗下令行选择和输入设置,远程堆栈拉取模板,根据设置将代码注入模板框架的代码中,主动创建远程堆栈,初始化git并提交至远程堆栈,方便项目开发,简化流程。
目次布局

创建一个bin文件夹,添加index.js文件,在这个文件中写下#! /usr/bin/env node
在package.json文件夹下

   实行 npm link 下令,链接到本地环境中 npm link (只有本地开发必要实行这一步,正常脚手架全局安装无需实行此步调)Link 相称于将当前本地模块链接到npm目次下,这个目次可以直接访问,以是当前包就能直接访问了。默认package.json的name为基准,也可以通过bin设置别名。link完后,npm会主动帮助天生下令,之后可以直接实行cli xxx。
  直接上代码bin/index.js
  1. #!/usr/bin/env node
  2. import { Command } from 'commander';
  3. import chalk from 'chalk';
  4. import figlet from 'figlet';
  5. import { promises as fs } from 'fs';
  6. import path from 'path';
  7. import { fileURLToPath } from 'url';
  8. import Creater from '../lib/create.js';
  9. import { getProjectName } from '../utils/index.js';  // 引入封装好的模块
  10. import '../utils/utils.js'
  11. // 解析 __dirname 和 __filename
  12. const __filename = fileURLToPath(import.meta.url);
  13. const __dirname = path.dirname(__filename);
  14. // 异步读取 JSON 文件并解析
  15. const packageJsonPath = path.resolve(__dirname, '../package.json');
  16. const config = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
  17. const program = new Command();
  18. // 欢迎信息
  19. console.log(chalk.green(figlet.textSync('Ti CLI', {
  20.     horizontalLayout: 'full'
  21. })));
  22. program
  23.     .command('create')
  24.     .description('create a new project')
  25.     .option('-f, --force', 'overwrite target directory if it exists')
  26.     .action(async (options) => {
  27.         // 获取工作目录
  28.         const cwd = process.cwd();
  29.         // 提示用户输入项目名称
  30.         const projectName = await getProjectName(cwd);
  31.         // 目标目录也就是要创建的目录
  32.         const targetDir = path.join(cwd, projectName);
  33.         const creater = new Creater(projectName, targetDir,'git密令');
  34.         try {
  35.             await creater.create();
  36.         } catch (error) {
  37.             console.error(chalk.red(`创建项目失败: ${error.message}`));
  38.         }
  39.     });
  40. program
  41.     .command('build')
  42.     .description('build the project')
  43.     .action(() => {
  44.         console.log('执行 build 命令');
  45.         // 在这里实现 build 命令的具体逻辑
  46.     })
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表