新手使用创建脚手架

为什么我们需要一套脚手架,它能帮助我们解决哪些痛点问题。

脚手架(Scaffold)是一种用于快速创建项目结构和提供基础代码的工具。它在软件开发中非常有用,具有以下几个主要原因:

提高效率:脚手架可以帮助开发人员快速创建项目的基本结构,包括目录、文件和配置等,省去了手动创建的时间和精力。它们通常还提供了一些常用的代码模板和功能实现,帮助开发人员更快速地开始项目并加速开发进度。

标准化项目结构:脚手架定义了一套标准的项目结构,它可以使团队成员之间的项目结构保持一致,提高代码的可读性和维护性。使用脚手架可以确保项目具有清晰的组织结构,使其易于理解和导航。

自动化配置和集成:脚手架可以自动配置项目所需的各种环境、依赖项和工具。它们能够处理许多繁琐的配置步骤,例如安装依赖项、配置构建工具、设置测试环境等。通过自动化这些过程,脚手架可以显著减少出错的可能性,并使整个开发过程更加顺畅。

最佳实践和模板代码:脚手架通常是由经验丰富的开发人员或团队创建的,并且秉承了最佳实践。它们可以提供一些示例代码、模板和约定,帮助开发人员遵循良好的编码规范和设计模式。这有助于提高代码质量、减少重复工作,并促进团队间的协作和沟通。

综上所述,使用脚手架可以加快项目搭建和开发速度,保持项目结构的一致性,自动化配置和集成,以及提供最佳实践和代码模板。通过使用脚手架,开发人员可以更专注于业务逻辑的实现,而不必花费过多时间和精力在项目基础架构的搭建上。

  • 首先我们下载所需依赖
  "dependencies": {
    "commander": "^11.0.0",
    "download-git-repo": "^3.0.2",
    "inquirer": "^8.2.5",
    "ora": "^5.4.1"
  }
  • 在pacckage.json配置bin指令

这个指令是前缀命令,例如 npm 这样的前缀

  "bin": {
    "cime-cli":"./bin/index.js"
  },
  • 创建目录bin下index.js
    请添加图片描述

  • 编写代码 首先引入依赖

// 创建命令行指令
const program = require('commander')
// 获取json文件获取版本
const package = require('../package.json');
// 创建命令行交互,提供用户交互收集用户信息
const inquirer = require('inquirer');
// 可以从远程拉取git仓库
const download = require('download-git-repo');
// 创建命令行加载动画
const ora = require('ora')
// 路径
const path = require('path');
  • 创建查看版本指令

提供输入 cime-cli --version 输出版本

//提供输入 cime-cli --version 输出版本
program.version(`@cime/cli  v${package.version}`)
  • 创建所需全局变量

模板可以创建多个

// 提供模板
let templates =  [{
    name: 'cime-admin-react',
    value: '仓库地址'
},
{
    name: 'cime-admin-react-electron',
        value: '仓库地址'
},
{
    name: 'cime-admin-vue',
        value: '仓库地址'
}
]
// loading 加载
const loading = ora('正在下载....')
  • 创建指令获取输入项目名和选择模板下载对应项目

链式调用进行下一步操作

program.command('create')
    .description('创建模版') //  设置命令描述 
    .action(async () => { // 异步处理函数
        // 创建终端输入框
        let {
            name
        } = await inquirer.prompt({
            type: 'input', // list 列表选择  confirm 选择框
            name: 'name', // 问题名称  
            message: '请输入项目名称:'
        })
        console.log('用户创建的的项目名字是:', name);
        let {
            template
        } = await inquirer.prompt({
            type: "list", // 实现选择下载模板
            name: 'template',
            message: '请选择下载的项目:',
            choices:templates
        })
        console.log('选择模板:', template);

        loading.start()
        // 开始下载代码:
        // downloadGitRepo('下载路径','目标文件夹路径','下载完毕后执行的函数')
        // process.cwd() 获取 命令是在哪个目录下输入的
        let dest = path.join(process.cwd(), name)
        downloadGitRepo(template, dest, function (err) {
            if (err) {
                loading.fail('创建模版失败:' + err.message) // 失败loading
            } else {
                loading.succeed('创建模版成功!') // 成功loading
            }
        })
    })

使用方法

  • 将本地文件系统中的一个包链接到项目请添加图片描述

  • 现在就可以输入你的创建的指令查看版本下载项目了

输入指令查看版本 cime-cli --version

请添加图片描述

  • 输入指令下载远程仓库中的项目

输入指令下载项目 cime-cli create 选择模板下载

这样我们就手写了一款属于自己的脚手架,方便我们管理使用自己的项目,中间编写代码时可以慢慢调试编写,还有一些依赖版本有兼容性,下载依赖时注意版本。请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值