NPM 制作命令行工具 - 入门案例

news/2024/11/28 23:36:16/

一、简介

  • 经常通过 npm 安装 vue-clicreate-react-app 之类的命令行工具,那么如何简单的制作一个命令行工具呢?只需要几步即可!

二、制作

  • 创建 npm 命令行工具文件夹(例如:dzm-cli

  • 初始化 dzm-cli,得到 package.json 配置文件。

    $ npm init -y
    
    {"name": "dzm-cli","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC"
    }
    
  • 根目录新建 index.js,添加测试代码

    #!/usr/bin/env node// 输出命令带的参数
    console.log(process.argv)
    
  • 可以本地测试执行下 index.js

    $ node index.js# 输出
    ['/Users/xxx/.nvm/versions/node/v16.20.0/bin/node','/Users/xxx/Desktop/Project/dzm-cli/index.js'
    ]$ node index.js 参数1 参数2 参数3 ....# 输出
    ['/Users/xxx/.nvm/versions/node/v16.20.0/bin/node','/Users/xxx/Desktop/Project/dzm-cli/index.js''参数1','参数2','参数3'
    ]
    
  • 然后在 package.json 中添加 bin 字段

    bin 字段的 key 就是命令(例如:vue-clicreate-react-app

    value 指向该命令对应的脚本路径(例如:index.js

    不同的 key 对应不同的命令跟处理脚本

    这里指定一个 dzm-cli 命令,并指定刚新建的 index.js 最为处理脚本,然后对 package.json 可以进行简化下,需要什么其他配置字段可以自己加:

    {"name": "dzm-cli","version": "1.0.0","description": "","bin": {"dzm-cli": "index.js"}
    }
    

    image.png

三、本地测试与发包

  • 先本地测试一下,在 package.json 目录通过创建本地软链进行测试

    # 创建测试链接
    $ npm link# 移除测试链接
    $ npm unlink dzm-cli
    

    执行后 npm 本地就会通过项目中 package.jsonbin 字段创建对应的命令可执行文件,然后就可以直接使用命令测试了。

    $ dzm-cli$ dzm-cli 参数1 参数2 参数3
    
  • 测试没有问题后,可以通过 $ npm publish 发包了!注意:发包时必须保证 npm 源为官方源,不能是第三方源,要不然会发包失败!没有 npm 账号的自行官网注册一个。(附:NPM 上传发布详细流程)

    image.png

三、使用

  • 发包成功后,项目中安装测试一下

    $ npm i -g dzm-cli
    
  • 项目中使用

    $ dzm-cli# 输出
    ['/Users/xxx/.nvm/versions/node/v16.20.0/bin/node','/Users/xxx/Desktop/Project/dzm-cli/index.js'
    ]$ dzm-cli 参数1 参数2 参数3# 输出
    ['/Users/xxx/.nvm/versions/node/v16.20.0/bin/node','/Users/xxx/Desktop/Project/dzm-cli/index.js''参数1','参数2','参数3'
    ]
    
  • 然后就可以通过判断参数进行处理了,也可以使用相应的插件库更好的对命令进行处理!


http://www.ppmy.cn/news/123718.html

相关文章

“爱玛”等不达标电动自行车下架

来源:北京晚报 记者 杨滨 北京市市场监管局今天公布电动自行车质量抽检结果显示,22款电动自行车最高车速、整车质量、脚踏行驶能力等不达标,包括标称天津爱玛车业科技有限公司生产的两款“爱玛”电动自行车,标称绿源电动车&…

stm32/gd32爱玛电动车控制器资料 ,电动车控制器原理图、PCB和程序,大厂成熟电机foc控制

stm32/gd32爱玛电动车控制器资料 ,电动车控制器原理图、PCB和程序,大厂成熟电机foc控制 15697661859tb

stm32/gd32爱玛电动车控制器资料 电动车控制器原理图、PCB和程序

stm32/gd32爱玛电动车控制器资料 电动车控制器原理图、PCB和程序 大厂成熟电机foc控制 送eg89m52的原理图和pcb id652995403923&

零基础玩转AI小车Jetbot—基于Jetson Nano-----------其中用到的库traitlets是什么,如何使用?

连接到 traitlets 控制电机 Traitlets 是一个 Python 库,用于实现属性的声明、验证和事件驱动编程。它是 IPython 项目的一部分,但也可以独立使用。Traitlets 提供了一种定义属性和管理属性之间依赖关系的方式,使得编写可重用的、模块化的代码变得更加容易。 一个非常酷的功…

stm32/gd32爱玛电动车控制器资料

stm32/gd32爱玛电动车控制器资料 电动车控制器原理图、PCB和程序 大厂成熟电机foc控制 YID:425652995403923lin昵称好难设置

电动车排名前十名是哪些品牌?看这篇文章就够了~

在这个快节奏的生活方式下,时间就是一切,不少小伙伴为了节省时间、追求速度,基本都会选择开车上下班,然而开车最大的一个缺点在于上下班途中迎来的高峰期会造成交通堵塞,这往往令很多车主非常头疼。相比较之下&#xf…

新日asp系统是什么_爱玛与新日到底哪个好,是时候告诉你真相了

爱玛和新日都是电动车领域的佼佼者。在买电动车的时候总是有一些人会问这两个牌子哪一个更好。其实,对于同等价位的电动车,配置基本是差不多的。但是综合评估之下,爱玛电动车整体的性价比还是要更高一点的。 图注:爱玛发布会现场图…

爱玛电动车即将敲响上市铜锣 品牌域名你爱吗?

11月26日,证监会发布“第十八届发审委2020年第169次会议审核结果公告”,爱玛科技通过审核。 说起爱玛电动车,虽然我们不一定亲身使用过,但是一定听到过其铺天盖地的广告语“爱玛电动车,爱就马上行动”。爱玛电动车以其…