当前位置: 首页 > backend >正文

node创建自己的CLI脚手架(强化基础)

什么是脚手架

  • 全局命令行工具
  • 能够创建项目初始化代码及目录
  • 命令行交互能力

创建自己的脚手架

  • 脚手架项目初始化
1、初始文件夹下新建bin文件夹
2、bin文件夹下新建index.js
3、初始文件夹下npm init
// 这样的顺序就会在package.json中生成对应关系如下
"name": "mycli",
"bin": {"mycli": "bin/index.js"},
  • 在根目录运行npm link(本地测试全局命令)
npm link 是一个用于将本地包链接到全局包的命令;
因为它允许你在本地测试和调试你的包,而无需每次更改后都发布它。
此时,在任何一个可以输入命令行的地方mycli,可以看到"bin/index.js"中的打印
  • 入口文件(bin/index.js)

定义指令->指令回调中交互->交互完成后then中下载代码

#!/usr/bin/env nodeconst inquirer = require('inquirer'); //8.2.6
const { program } = require('commander'); // 14.0.0
const download = require('download-git-repo') //3.0.2
// commander帮助自定义指令及选项参数
program.command('create <name> [others...]')
.alias('c') // 指令别名
.description('new project') // 指令描述
.action((name, args) => { // 指令回调函数inquirer.prompt([ //inquirer提供命令行问答交互能力{type: 'input',name: 'name',message: '请输入项目名称'}]).then(answers => {// download-git-repo帮助下载远程仓库模版download('direct:git@gitee.com:la_yp/test-1.git',name, { clone: true }, function (err) {console.log(err ? 'Error' : 'Success')})})
})
// 解析命令行参数
program.parse(process.argv);
http://www.xdnf.cn/news/9594.html

相关文章:

  • 【数据库系列】bulk_save_objects 与 bulk_insert_mappings 对比
  • Redis 5 种基础数据结构?
  • 解决 Go 中 `loadinternal: cannot find runtime/cgo` 错误
  • 从零开始学习PX4源码23(飞行模式管理)
  • windows安装Ubuntu(通过WSL,非双系统,非虚拟机)
  • Three.js 直线拐角自动圆角化(圆弧转弯)
  • 【unity游戏开发——编辑器扩展】AssetDatabase公共类在编辑器环境中管理和操作项目中的资源
  • MySQL如何开启死锁检测?
  • C 语言学习笔记(结构体2)
  • 国内有哪些智能外呼机器人
  • 单例模式的隐秘危机
  • 2025.5.23 【ZR NOI模拟赛 T3】高速公路 题解(容斥,高维前缀和,性质)
  • 【Redis】基本命令
  • Caddy如何在测试环境中使用IP地址配置HTTPS服务
  • VR 汽车:引领生产与设计的革命性飞跃​
  • 高端制造行业 VMware 替代案例合集:10+ 头部新能源、汽车、半导体制造商以国产虚拟化支持 MES、PLM 等核心应用系统
  • 漫画Android:Handler机制是怎么实现的?
  • 破能所,入不二
  • 文件服务端加密—minio配置https
  • OpenCV CUDA模块直方图计算------在 GPU上执行直方图均衡化(Histogram Equalization)函数equalizeHist
  • OpenAI大模型不听人类指令事件的技术分析与安全影响
  • ansible中的inventory.ini 文件详解
  • Ansible模块——Ansible的安装!
  • k8s Headless Service
  • 懒人云电脑方案:飞牛NAS远程唤醒 + 节点小宝一键唤醒、远程控制Windows!
  • day10机器学习的全流程
  • 嵌入式通用集成电路卡市场潜力报告:物联网浪潮下的机遇与挑战剖析
  • 政务小程序TOP3交互设计分析:便民服务的隐藏心机
  • C语言 文件操作(2)
  • 实验三 企业网络搭建及应用