为什么需要 JavaScript CLI 工具?
想象一下:你每天手动重命名报告文件夹、将 JSON 转换为 CSV 或查找重复文件。如果编写一个小程序,能在终端中通过一条命令在一秒钟内完成这些操作,会怎样?这正是 JavaScript CLI 工具 的用武之地。
与完整的 Web 应用程序不同,CLI(命令行界面)是轻量、快速且非常方便的工具。它们不需要浏览器,可以在任何平台上运行,并且易于集成到 CI/CD 脚本中。在 PythonLib 上,我们经常讨论自动化,今天我将展示如何从零开始创建你的第一个 Node.js CLI 工具。你会惊讶于它竟然如此简单!
在本文中,我们将走完完整的流程:从项目设置到将完成的包发布到 npm。你得到的不仅仅是理论,而是可以直接根据自己需求调整的工作代码。
什么是 CLI 工具,为什么选择 JavaScript?
CLI 工具 是一种从命令行运行的程序。你输入 my-tool --input file.txt,它就会执行所需操作。JavaScript 非常适合这个任务,因为:
- Node.js 安装在每台服务器和几乎每台开发者的 PC 上。
- 有大量现成的模块(npm)可用于处理文件、网络、数据格式。
- 编写简单:无需编译,一个文件就够了。
- 跨平台:你的工具可以在 Windows、macOS 和 Linux 上运行。
即使你是 Node.js 新手,也能搞定。我们将从最简单的开始——一个输出问候语的脚本。
步骤 1:为 CLI 工具设置项目
为你的项目创建一个文件夹并初始化 npm:
mkdir my-first-clicd my-first-clinpm init -y现在打开 package.json。这是你未来 JavaScript CLI 工具 的主要配置文件。在其中添加 "bin" 字段:
{ "name": "my-first-cli", "version": "1.0.0", "description": "我的第一个 CLI 工具", "bin": { "greet": "./index.js" }, "license": "MIT"}"bin" 字段就是魔法所在。它告诉 Node.js:“当用户输入 greet 命令时,运行 index.js 文件”。请注意:命令名称(greet)可以是任何名称。
现在创建 index.js,第一行是 shebang。这对于 CLI 是必需的:
#!/usr/bin/env node
console.log('你好,世界!我是你的第一个 CLI 工具!');Shebang #!/usr/bin/env node 告诉系统该脚本需要使用 Node.js 执行。没有它,命令将无法工作。
步骤 2:使工具可执行并测试
要在本地运行你的 JavaScript CLI 工具,执行以下命令:
npm link此命令会创建指向你包的全局链接。现在,在任何终端中都可以输入:
greet你会看到:你好,世界!我是你的第一个 CLI 工具! 恭喜,你刚刚创建了你的第一个工具!
步骤 3:解析命令行参数
仅仅输出文本很无聊。真正的 CLI 工具 接受参数。让我们学习如何处理它们。Node.js 有一个内置数组 process.argv,但对于严肃的项目,最好使用 commander 或 yargs 模块。
安装 commander:
npm install commander现在重写 index.js:
#!/usr/bin/env node
const { Command } = require('commander');const program = new Command();
program .name