在 Node.js 中创建命令行应用程序的入门指南关于我

2025-06-09

使用 Node.js 创建命令行应用程序的入门指南

关于我

许多开发人员每天都使用命令行应用程序。

从 git 到 yarn,我们使用了各种各样的 CLI(命令行界面)应用。虽然并非所有人都喜欢 CLI 胜过 GUI,但很多极客却喜欢使用 CLI。

今天,我们将学习如何在 Node.js 中创建命令行应用程序

命令行应用可以用多种语言编写。如果你使用 Node.js 编写,则可以将你的应用提供给 NPM/Yarn 用户。

假设

  • 您知道如何安装 NPM 包。
  • 你了解 Node.js 的基础知识
  • 您了解基本的终端命令例如cd、、、pwdllls

开始

  • cd到存储所有代码的存储库。

  • 执行以下操作...

$ mkdir demo-cli && cd demo-cli

$ touch index.js

$ npm init -y
Enter fullscreen mode Exit fullscreen mode
  • 在您最喜欢的代码编辑器中打开该demo-cli文件夹。

index.js

CLI 应用的核心在于输入和输出。在本入门指南中,我们不会深入讲解如何创建一个执行重要操作的 CLI。

目前,我们只会利用chalkfiglet做出一些创造性的输出。

运行以下命令来安装所需的软件包...

$ npm i chalk figlet clear -s
Enter fullscreen mode Exit fullscreen mode

然后,只需将以下代码片段粘贴到您的index.js.

#!/usr/bin/env node

const clear = require('clear')
const chalk = require('chalk')
const figlet = require('figlet')

clear()

console.log(
  chalk.yellow.bold(
    figlet.textSync('CLI!', {
      horizontalLayout: 'full'
    })
  )
)
Enter fullscreen mode Exit fullscreen mode

#!/usr/bin/env node行需要位于顶部才能使命令行应用程序正常工作。

包.json

package.json在您的...中添加启动脚本

{
  "scripts": {
    "start": "node index.js"
  }
}
Enter fullscreen mode Exit fullscreen mode

另外,添加一个bin脚本。该脚本决定用户需要输入什么命令才能看到输出。

{
  "bin": {
    "thisDemoCli": "index.js"
  }
}
Enter fullscreen mode Exit fullscreen mode

查看输出

运行npm start看看输出是什么样的。这不就像运行一个 Node 应用一样吗?

好的,现在,这样做...

$ pwd # Copy the output you get

$ npm i -g <PASTE_THE_OUTPUT_OF_PREV_COMMAND>
Enter fullscreen mode Exit fullscreen mode

现在尝试thisDemoCli在终端中运行,您应该会看到相同的输出!

输出...

  / ___| | |     |_ _| | |
 | |     | |      | |  | |
 | |___  | |___   | |  |_|
  \____| |_____| |___| (_)
Enter fullscreen mode Exit fullscreen mode

发布到 NPM

要发布到 NPM,以便您可以向用户提供您的应用程序,请为您的包提供一个唯一的名称,并为其提供一个版本。

然后跑...

$ npm publish
Enter fullscreen mode Exit fullscreen mode

就是这样!

🦄 更多信息

本教程仅帮助您创建一个简单的命令行应用程序。真正的命令行应用程序有很多功能。就像我创建的这个一样

利用commanderNPM 模块使 CLI 根据不同的标志(如、等)执行不同的--help任务--version

这是本系列的第二部分 - 在 Node.js 中创建命令行应用程序:参数解析


关于我

我是 Kumar Abhirup,一名来自印度的 16 岁 JavaScript React 开发人员,我每天都在学习新事物。

在 Twitter 上与我联系🐦
我的个人网站和作品集🖥️

在下面评论您更好的方法和建议以改进本文。:)

鏂囩珷鏉ユ簮锛�https://dev.to/kumareth/a-starter-guide-to-create-a-command-line-app-in-node-js-41hn
PREV
如何让 25 万以上的页面被 Google 收录 1. 输入 SSR 2. 输入动态 Sitemap 3. 输入删除 JavaScript 结论
NEXT
README 中五大实用技巧!什么是 README 徽章?以下是 5 个必备的 README 徽章!总结