Node CLI 之 起步

什么是 CLI

CLI 全称是 Command Line Interface,是一类通过命令行交互的终端工具。Web开发中,我们无时无刻都在使用CLI 辅助开发,提升操作效率,比如 git、npm、webpack、vite 等

为什么需要 CLI

CLI 可以帮助我们更高效的操作计算机系统,工作中,我们可以我们将有规律可循的、重复的、繁琐的、模板化的工作,集成到CLI工具中。一个命令,即可快速的完成一些列操作

相比于 GUI 工具(用户图形界面)

  • GUI:更侧重易用性,用户通过点击图形界面,完成相关
  • CLI:更侧重操作效率,通过命令组合自动化操作、批量操作等

Node CLI 开发核心步骤

前置说明: 略过 npm init -y 初始化项目等操作

1. 写要执行的程序

项目中定义命令文件,文件头部必须有 #!/usr/bin/env node, 表明这个文件是需要用node来执行,了解python的同学,应该见过 #!/usr/bin/env python, 是一个意思

#!/usr/bin/env node

console.log('Start to Dev Node CLI');
2. 定义终端执行命令

package.json 文件中,声明 bin 字段;格式为:

<command>: <JS file>
{
    
    
    "bin": {
    
    
        "my-cli": "./bin/index.js"
    }
}
3. 调试 CLI 工具

两种方式,本地打包或者发布到npm,发布到npm的方式,就是大家平时装包的方式了,这里讲一下本地方式

  1. 打包 项目终端执行命令
npm pack
  1. 全局安装
比如你的项目成叫my-cli
npm i my-cli-1.0.0.tgz -g
  1. 终端执行

在这里插入图片描述

Node CLI 最佳实践

遵循 POSIX 参数

POSIX 语法已被广泛接受为命令行工具的标准,我们开发命令行工具时,应该遵守它。 常见规则举例如下:

  • 可以指令帮助或示例中将选项参数或选项标记为方括号( [] )表示它们是可选的;或带有尖括号( <> )表示它们是必需的。
  • 允许使用短格式的单个字母参数作为长格式参数的别名(请参阅 GNU 编码标准)
  • 使用缩写形式单数指定的选项 - 可以包含一个字母数字字符。
  • 指定多个没有值的选项可以进行分组,例如 myCli -abc 等效于 myCli -a -b -c

命令行高级用户希望您的命令行应用程序具有与其他 Unix 应用程序类似的约定

遵循 Semver 版本

版本格式 X.Y.Z-[state]

  • X 代表 主版本号:功能新增、移除,API不向下兼容
  • Y 代表 次版本号:功能新增,API向下兼容
  • Z 代表 修订版本号:问题修复,API向下兼容
  • [state] 状态解释如下
描述 说明
alpha 内测版本:bug 较多
beta 公测版本:存在bug,有缺陷
gamma 相当成熟的测试版:与发行版相差无几(一般略过此版本)
rc 发行倒计时版本:实现了全部功能,修复了大部分 bug,接近发布倒计时,有时会进一步细分为 rc.1、rc.2

下一小节学习 commander.js 终端命令框架

猜你喜欢

转载自blog.csdn.net/weixin_40639095/article/details/134835955