node.js 如何开发一个命令行工具库、脚手架发布到npm

本文介绍了作者开发一个AI命令行工具库的过程,包括使用npminit-y初始化项目,规划文件结构,引入常用库,以及如何配置package.json和进行本地测试、发布到npm。作者还分享了脚手架开发的基本步骤和注意事项。

       前段时间我开发了一个Ai命令行工具库【博客地址】 ,可以终端命令、可视化的形式帮助大家去执行各种编写好的脚本。

      网上对于js npm包的发布流程很多,知识也很完善,但对于命令行工具\脚手架的开发与发布相对较少。"作为菜鸟的我非常热衷与制造各种奇形怪状没用大用的轮子“, 想到可能有刚入坑的小伙伴也有这方面的开发需求,就简单给大家描述一下搭建这样一个库的流程。

      如果你不想看这没用的文档,你也 可以直接去这个仓库GitHub - ruo-love/use-shell-ai 参考源代码,或许更加高效。

第一步: 搭建项目

因为我们要封装的是一个npm 包,所有先使用 npm init -y 初始化一个项目

第二步骤:规划好自己的开发文件入口

我这里在根目录创建了一个bin 文件夹,内部将index作为入口文件

#! /usr/bin/env node
const { program } = require("commander");
program.version("1.0.0").name(`
    欢迎使用 use-shell-ai \n
`);

program
  .description("配置模型")
  .command("config")
  .action(require("./actions/config"));

program
  .description("开始问答")
  .command("q <question>")
  .action(require("./actions/chat"));
program.parse(process.argv);

#! /usr/bin/env node   //注意在入口文件顶部我加入了这行命令,目的是为了告诉系统使用node执行脚本 (后文为大家详细讲解)

接下来我们就可以开发相关脚本库了

这里我就推荐一些常用的库给大家:详细的使用方法大家去查一下,这里不过多赘述

  1. cli-table 终端表格输出库

  2. commander  命令行开发工具

  3. inquirer  命令行可视化输入、选择工具

其他的一些工具大家可以在网上搜索,node相关生态目前来说也是很不错的

第三步:当大家开发完毕之后,就可以开始修改package.json 文件

 package.json 中的配置很多,这里给大家说几个比较关键的字段

name : 该字段为你发布的npm包名,不能使用大写、不可以与已存在的库重复

version:  版本号,每次发布、更新npm包都需要去更新版本号

homepage: 包的文档地址,你可以直接天仓库地址

bin:  这个字段很关键 

        key 命令符:value:脚本入口地址  

 本地测试: npm link

在发布至npm 前,你可以在项目根目录的终端下执行 

npm link  name(package.json 中的name)

 执行成功之后你就可以在当前终端下 直接使用你的命令行工具了

我这里直接执行 询问问题的脚本

ai q java // 输入之后 按回车即可执行

 发布npm包

在本地测试无误后,直接执行  npm publish 即可发布成功

注意:发布之前请先在本地登录npm, 不了解这块知识的朋友请去查看文档或者Google搜索

 脚手架

脚手架的搭建其实也可以参考一下步骤

  根据自己的需求去开发命令,通过命令执行脚本,通过脚本拉取文件、对文件增删改查等等,了解大致原理后很多问题都能迎刃而解。

详细的脚手架开发,网上知识很丰富,可以直接Google学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值