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

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);

相关文章:

  • 苍茫命令行:linux模拟实现,书写微型bash
  • ​​知识图谱:重构认知的智能革命​
  • 【Rust】Rust获取命令行参数以及IO操作
  • ABAQUS三维功能梯度多孔结构材料FGM轴压模拟
  • 第二章 1.6 数据采集安全风险防范之数据源鉴别及记录
  • API 与 SPI
  • ZooKeeper 命令操作
  • 三维点云深度学习代码torch-points3d-SiamKPConvVariants复现记录(持续更新中)
  • Yocto meta-toradex-security layer创建加密数据分区应用说明
  • 高通滤波和低通滤波
  • 针对C语言的开发工具推荐及分析(涵盖编辑器、集成开发环境(IDE)、编译器、调试工具及辅助工具)
  • 电子电路:什么是C类放大器?
  • 【C++基础知识】【ASAN】
  • Kafka KRaft + SSL + SASL/PLAIN 部署文档
  • Python应用while循环猜数字
  • HTML5 视频播放器:从基础到进阶的实现指南
  • 电脑开机后出现bootmgr is conmpressed原因及解决方法
  • Android-GestureDetector学习总结
  • Hadoop复习(二)
  • 【组件】翻牌器效果
  • 杭州手机网站制作公司哪家好/最有效的app推广方式有哪些
  • 网站推广的意义和方法/如何优化关键词的方法
  • 个人求职网站如何做/新媒体销售好做吗
  • php做网站登录界面/手机优化专家
  • 网络编程基础知识/重庆seo网络推广平台
  • wordpress wechat/app优化推广