node学习--自定义脚手架(六):完成具体指令逻辑

自定义脚手架 全局命令行工具创建项目初始化代码文件及目录。 阅读详情

一、使用download-git-repo,下载远程仓库代码到本地。

具体功能可参考download-git-repo - npm

根据用户选择的不同选项,下载不同的模版代码。

二、使用ora,实现下载代码时的等待功能。

const ora = require("ora")
const spinner = ora().start()
spinner.text = `${answer.framWork}模版下载中...`
setTimeout(()=>{
    spinner.succeed('Done!')
},3000)

此处,我用setTimeout模拟代码下载过程。

效果如下:

三、使用chalk,实现命令行打印信息的文字样式。

const chalk = require("chalk")
console.log(chalk.green('you will do next:'))

效果如下:

四、完整代码如下:

 const inquirer = require('inquirer')
 const config = require('../../config')
 const ora = require("ora")
 const chalk = require("chalk")

 const createAction = (project,args)=>{  // action 用来写这个指令具体的操作逻辑  回调中的参数是<project> [other...]
    // 命令行的执行逻辑代码
    // 需求:询问用户,让用户选择需要的node框架
    inquirer.default.prompt([
        {
            type:'list', // 题目类型  list input ...
            choices:config.frameworkList, // 选项
            name:'framWork', // answer对象接收的字段名称
            message:'请选择您需要的框架?' // 问题
        }
    ]).then(answer=>{ // 通过then方法接受处理用户的选择回答
        console.log(answer)
        // 下载对应的代码---使用download-git-repo
        // 使用ora---实现下载等待功能
        // 使用chalk---实现命令行提示文字的样式
        const spinner = ora().start()
        spinner.text = `${answer.framWork}模版下载中...`
        setTimeout(()=>{
            spinner.succeed('Done!')
            console.log(chalk.green('you will do next:'))
            console.log(`cd ${project}`)
            console.log(`npm install`)
            console.log(`npm run dev`)
        },3000)
    })
    
}
 module.exports = createAction

创建自己的简单脚手架工具 介绍制作脚手架的简单步骤 阅读详情

相关推荐

构建符合特定需求的自定义前端脚手架

前端脚手架是一种自动化工具,旨在通过预先定义的一套规则和配置来简化前端开发中的重复性工作。它包括但不限于项目创建、依赖管理、代码编译和打包等流程。脚手架的出现,极大地提高了开发效率,缩短了项目的启动时间。前端脚手架最直观的作用就是加速项目初始化。在没有脚手架的年代,每当我们需要开始一个新的项目时,我们必须手动完成一系列繁琐的配置,包括但不限于环境搭建、依赖安装、基础模板创建、配置文件编写等等。这不仅消耗时间,还容易出错。

weixin_42600407的博客 522

使用单选框、复选框,让用户选择

html中有两种选择框,即单选框和复选框,两者的区别是单选框中的选项用户只能选择一项,而复选框中用户可以任意选择多项,甚至全选。

star_yang的博客 1681

microduck复刻实战:强化学习机器人从仿真训练到真机部署全攻略

强化学习是智能体通过与环境交互试错来学习最优策略的机器学习范式,在机器人控制领域,常借助物理仿真环境进行策略训练,以降低真实世界的试错成本。其核心原理是通过奖励信号引导策略网络迭代优化,PPO等算法则在稳定性和样本效率之间取得平衡。仿真训练的价值在于可批量验证控制策略,但仿真与真实硬件之间存在物理参数偏差,需通过域随机化等技术实现迁移。从四足机器人到仿生机器人,这类方案广泛应用于复杂运动控制任务。microduck作为一个典型的强化学习机器人项目,其复刻过程涉及环境搭建、奖励设计、PPO调参及Sim-to-

weixin_29061425的博客 361

node.js开发自己的脚手架工具以及利用yeoman开发自己的脚手架工具

本文先介绍一款通用脚手架(yeoman)的基本使用,然后再利用node.js来开发一个自己的脚手架工具。yeoman脚手架的本质也是通过node.js实现的 什么是脚手架 相信大家应该都用过脚手架,像create-react-app, vue-cli angular-cli等。应该也大概能知道脚手架具体是干嘛的,用来做什么。 脚手架本质就是用来快速生成我们所需要的项目结构,但他最重要的意义却在于,提供了统一的规范约定。有助于我们团队项目的开发 常用的脚手架工具 像现在比较流行得 create-reac.

weixin_42707287的博客 2261

欢乐熊大话蓝牙知识16:蓝牙是怎么找设备的?扫描与广播的“对话内幕”

蓝牙是怎么找设备的?扫描与广播的对话技术介绍

hoony123的博客 1382

达梦数据库JDBC连接池断开自动重连设置

一、场景 在网络状况不是非常良好,经常会出现暂时性的拥塞或者断开的情况,而且当我们重启数据库时也会发生类似的情况。所以需要配置中间件的连接池来实现连接测试以及自动重连,通过重新配置连接池,成功解决了这个问题。下面会给出一份数据源配置参数详单和一份推荐的数据源配置项。 二、连接池配置参数 1. initialSize:连接池启动时创建的初始化连接数量 2. maxActive:连接池中可同时连接的最大的连接数 3. maxIdle:连接池中最大的空闲的连接数,超过的空闲连接将被释放,如果设置为负

lilv1989的博客 7237

如何开发一个Node脚手架

原因 在工作中,需要开发一个脚手架,用于给相关用户提供相关的开发便利性。 适合人群 对前端、Node 操作有一定的了解,同时想了解脚手架开发过程或者需要自己实现一个脚手架的开发者。 目标 开发一个简单的脚手架,能够提供给用户进行安装。 能够输出相关提示。 对用户文件进行读写操作。 在脚手架中使用 Shell 脚本。 步骤 开发脚手架 脚手架的开发最开始过程与普通的前端项目相同,需要一个入口文件 command.js 和配置文件 package.json。

weixin_42899690的博客 423

2016域控服务器迁移,WIN Server2016 域服务器迁移出错

各位大神: 这几天刚安装了一台windows server 2016做域迁移时出现错误:1、默认SYSLOG、NETLOGON共享文件重启后自动取消共享,即使手动打开后依然会出现自动取消2、组策略中编辑策略时出现以下报错 policys.png (19.29 KB)2017-2-7 13:52操作此动作之前可以访问本机的共享(NETLOGON)3、使用DCDIAG检测多个报错:C:\Use...

weixin_31833039的博客 3314

node学习--自定义脚手架(三):使用commander新增自定义脚手架指令

【注意】action()方法中的回调函数是真正用来写命令行执行逻辑代码的地方。但是,这一块的代码会越写越多,比如要做命令行的问答交互、文字的颜色区分、下载代码、打印提示信息等等,代码耦合太严重,不便于后期维护,因此,我们在下一章要进行模块拆分。执行mycli create xxx指令,可以打印出参数,说明指令写的没问题。

coding_ch的博客 218

FlightStream实战:如何用面元法在笔记本电脑上完成无人机气动分析(附NASA案例)

本文详细介绍了如何利用FlightStream面元法在笔记本电脑上高效完成无人机气动分析,包括其核心技术优势、NASA D8案例实战解析及高效工作流建立。FlightStream作为快速CFD分析工具,显著提升了早期设计阶段的迭代速度,适用于概念设计验证和多气动构型比较。

weixin_28363123的博客 261

运维系列【仅供参考】:微信版本过低 使用CheatEngine绕过

微信版本过低 使用CheatEngine绕过

weixin_54626591的博客 2138

node搭建一个简单的脚手架

新建一个文件夹,文件夹下面创建bin/cli.js使用myclil执行我们的第一个自定义命令可以看到控制台打印了cli.js中的log,说明我们自定义的全局命令生效了提醒在执行mycli时有可能会报错这时我们把集成终端换成bash就可以执行了。cmd和powershall都不行例如:我们需要通过mycli init xxx指令来创建一个项目,这就需要自定义init指令。cli.js。

jieyucx的博客 2860

第4篇:使用 NModbus 库快速搭建 Modbus TCP 通信(从零开始用 C# 开发 Modbus 上位机)

本文介绍了如何使用 NModbus 库快速搭建 Modbus TCP 上位机通信程序。通过安装 NModbus4 NuGet 包,开发者可以轻松实现 Modbus TCP 连接,无需手动处理底层协议细节。文章详细演示了核心功能实现: 创建 TCP 客户端连接设备 读取保持寄存器(功能码0x03) 写入单个寄存器(功能码0x06) 关闭连接释放资源 提供完整C#示例代码,包含初始化连接、数据读写等关键操作,帮助开发者快速构建Modbus TCP通信应用。相比手动实现,NModbus库大幅简化了开发流程,特别适

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1047

node学习--自定义脚手架(一):创建自定义全局指令

五、在cli.js文件中,写下如下代码,目的是让cli.js中的代码可以正常运行在node环境中。二、在项目中新建bin文件夹,并在bin文件夹下,新建cli.js文件,用于写全局指令逻辑代码。七、接下来处理,自定义指令的参数,如同"npm --help"中的"--help"在根目录下,运行npm init命令,得到package.json文件。六、此时,在命令行中运行自定义指令就可以运行cli.js中的代码了。匹配到指令参数后,接下来就可以做各种对应的逻辑操作了。三、使用npm初始化项目。

coding_ch的博客 418

Jetson系列目标检测及推流

使用硬件编码,gstreamer推rtsp流至平台

xiao__run的博客 2710

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Node学习-第二章-创建脚手架工具

脚手架是个工具,通过输入命令创建项目初始化代码文件。脚手架工具的特点:1.指令执行 2.可交互 3.初始化项目构架。

莫莫博客 918

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

自定义脚手架封装

确定命令行交互方式选用合适的命令行工具库,如。安装它。在index.js中引入commander,并定义脚手架的命令和参数。例如,若脚手架用于创建项目,可定义create命令,像program.command('create <project - name>').description('Create a new project').action((projectName) => { /* 执行创建项目的逻辑 */ });功能逻辑设计若涉及模板渲染,考虑使用模板引擎库,如ejs在index.js。

2401_89097888的博客 724

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Node.js学习笔记

node.js就是一个运行环境,类似与浏览器的引擎,为js代码提供api使其能操控浏览器和操作系统。不同的是,node.js是为js代码提供操控操作系统(服务器)的api,而浏览器的引擎是为js代码提供操作浏览器的api。 想要对文件进行操作,首先就要引入node.js提供的文件系统模块:const fs = require('fs');然后再调用api进行操作。 读取文件(readFile): 写入文件(writeFile): 注意这是直接覆盖原先内容

echo_fade的博客 1052

node mysql 脚手架_如何实现Node.js脚手架(详细教程)

本篇文章主要介绍了如何实现一个简单的Node.js脚手架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧原因在工作中,需要开发一个脚手架,用于给相关用户提供相关的开发便利性。适合人群对前端、Node操作有一定的了解,同时向了解脚手架开发过程或者需要自己实现一个脚手架的开发者。目标开发一个简单的脚手架,能够提供给用户进行安装。能够输出相关提示。对用户文件进行读写操作。在脚...

weixin_35949264的博客 206

关于为了少搬砖,而用node手写了一个React脚手架这件事

hellow,大家好。最近刚写完一个react项目,又想写一个练练手,可是我突然发现一个问题。那就是又要从零构建一个完整的项目环境,避免不了要重复搬砖搬砖还是搬砖,确实挺麻烦,可能得花费20多分钟。啥?我项目都还没写就花了我半小时?气愤之下,我立刻想了个好主意,我能不能用node写个脚手架呢?就像vue react它们的脚手架一样,直接运行vue create xxx 就直接把它那套模板搬过来了,可是我的明显是基于他们之上再结合自己日常项目需求所需的额外的包来搭建我们的项目。

小陈的博客 364

node学习--自定义脚手架(四):逻辑代码模块化拆分

二、使用commonjs模块化拆分。

coding_ch的博客 284

node mysql 脚手架_详解如何实现一个简单的Node.js脚手架

原因在工作中,需要开发一个脚手架,用于给相关用户提供相关的开发便利性。适合人群对前端、Node操作有一定的了解,同时向了解脚手架开发过程或者需要自己实现一个脚手架的开发者。目标开发一个简单的脚手架,能够提供给用户进行安装。能够输出相关提示。对用户文件进行读写操作。在脚手架中使用Shell脚本。步骤开发脚手架脚手架的开发最开始过程与普通的前端项目相同,需要一个入口文件command.js和配置文件p...

weixin_34695463的博客 228

课设中前端开发:Node 脚手架 vs 原始 HTML,应该怎么选?

本文探讨了课程设计(课设)中前端开发技术的选型问题,重点比较了使用 Node 脚手架(如 Vue CLI、React 脚手架)与原始 HTML+CSS+JS 两种方式的优劣。从工程复杂度、页面效果、技术含量到适用场景多维度分析,结合学生实际情况提供选型建议。适合正在准备课设、犹豫如何搭建前端的读者参考。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 559

Vite + TypeScript + Node 开发一个简易脚手架

Vite + TypeScript + Node 开发一个简易脚手架

biaov 611

02Node自定义脚手架前置内容之创建全局的自定义命令

!/usr/bin/env就是让系统使用node来执行你的脚本文件。2.1安装commander库2.2使用commander提供的方法//commander插件,用于解析命令行参数//当在终端使用 ymz -s 或者 ymz --save时会显示save something//这个方法就是添加帮助项,表示传递的参数,使用时应该这样使用 ymz -s xxxx 或者 ymz --save xxxx。

Csdn_____c的博客 1076
上一篇: node学习--自定义脚手架(五):使用inquirer实现命令行问答交互
coding_ch
博客等级 码龄5年 8粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值