使用 go 开发一个命令行工具

自己工作中经常用到的 go 开发命令行工具,以下涉及的 nx-cli 为示例项目名

01 安装 cobra cli

这是一个全局的,如果已经安装,可以跳过

# 测试是否已经安装
$ cobra-cli -h
# 如果未安装,执行下面
go install github.com/spf13/cobra-cli@latest

02 初始化项目

初始化项目,并添加相应的子命令

# 初始化项目
go mod init nx-cli
# 初始化 cli 文件列表
cobra-cli init .
# 添加子命令<我的项目中目前不需要>
cobra-cli add mp3

03 开发调试

如果是在开发阶段,可以按如下方式

# 主命令
go run main.go
# 子命令
go run main.go mp3

04 编译打包相关

生成 cli 的相关命令

{
  "name": "nx-cli",
  "version": "1.0.0",
  "private": true,
  "license": "MIT",
  "scripts": {
    "start": "go run main.go",
    "build": "go build -o dist/your-cli main.go",
    "bin:link": "ln -s $(pwd)/dist/your-cli /usr/local/bin/your-cli",
    "bin:unlink": "rm /usr/local/bin/your-cli" 
  }
}
go cobra cli