servlet如何把数据传到js中_如何在 Node.js 中搭建 CLI 工具?

33680bffd2c89b996ce8538ca43da5a7.png

Photo by Yulia Khlebnikova on Unsplash

原文:https://www.freecodecamp.org/news/how-to-build-a-cli-tool-in-nodejs-bc4f67d898ec/

作者:Al-amin Nowshad

译者‍:blackcai

提示:

作为开发者,CLI 工具似乎陪伴我们每一天的工作,从 git 到 cloud shell —— 我们随时都在使用 CLI。所以,是时候搭建你自己的 CLI 工具了。在这篇文章中我们将使用 Heroku 构建的非常棒的框架 oclif。

什么是 oclif?

它是一款由知名平台 Heroku 提供的可以快速构建 CLI 工具的开源框架。

我们将要构建什么?

我们将要制作一个有四个功能的待办清单列表

  • 添加一个新的任务

  • 查看所有的任务

  • 更新任务

  • 删除任务

初始化我们的项目

Oclif 可以创建两个类型的项目

1、含有一个命令的项目

2、包含嵌套命令在内的多个命令

在这篇文章中,我们需要一个多命令的项目,开始创建它:

npx oclif multi todocli

运行这个命令并跟着说明操作将在当前目录初始化一个名为 todocli 的新项目。

现在,让我们进入目录并运行帮助命令:

cd todocli && ./bin/run --help

这个命令会打印出以下结果:

> USAGE       $ todocli [COMMAND]    COMMANDS    hello       help   display help for todocli

这个文件夹显示了可用的命令及其文档。

daabb97c51396f130f30194ab73c17ef.png

项目结构

我们可以在 src 目录下面找到一个名为 commands 的目录。这个目录包含所有命令及其相对文件名。例如,如果我们有一个命令 hello,我们将在这个目录中找到一个名为 hello.js 的文件,该命令无需更多设置即可运行。当我们不需要它的时候可以删除它。

设置数据库

我们需要一个存储系统来存出任务。为简单起见,我们将使用 lowdb 这个非常简单的 json 文件存储系统。用在这个项目上很不错吧?

我们开始安装吧:

npm install lowdb --save

我们在项目根目录中创建一个 db.json 文件,该文件将保存我们的数据。然后我们需要安装 lowdb。现在,我们将在 src 目录中创建一个名为 db.js 的文件。这个文件将会保存我们的数据库资料。

9cc52bc0ab688ec4f7f8c40201d4d5e2.png

在这里,我们首先简单地加载所需的库和文件,然后将定义一个空的 todos 数组作为我们的基本集合(如果你把它想像成 SQL 数据库那这就像一个表)。

添加任务

oclif 为我们提供了平滑的命令生成功能。让我们跟着运行以下命令:

npx oclif command add(原文为:oclif command add,译者实际使用中会报出错误 oclif: command not found)

这个命令将在 src/commands 目录中创建一个名为 add.js 的文件。让我们用下面的代码替换该文件的内容:9cee59f7fe1633b8ebd8b4a081dee9fe.png

该文件有几个关键组件:

  • 一个执行此命令主要功能的运行函数,

  • 一个描述,这是命令的说明文档

  • 和一个标志,描述传递给命令的标志。

这里,我们有一个名为 task 的标志,它有一个字符串类型。我们可以运行命令:

./bin/run add --task="welcome task"

此命令将向数据库添加任务并打印该操作的响应内容。

显示任务

npx oclif command show

c516cc92bfceb731d197e4de28b1e15e.png

在 show.js 中,我们以升序显示所有任务。我们用 chalkjs 添加了一点颜色,使我们的命令结果更好看。

ec9bdca1e5c2b63b55d32c0e4c3f9d9d.png

更新任务

npx oclif command update

adf4c1b1b8ef9586623a31460adf18f9.png

为简单起见,我们现在只为我们的更新部分设置任务。我们只是将任务的 id 作为标志传递。

./bin/run update --id=1

这将为 id = 1 的任务设置 done = true。

移除任务

npx oclif command remove

edf719fb96d87d791e7f38f97e26f1e8.png

删除非常简单:我们将 id 作为标志传递,然后从数据库中删除相关任务。

差不多完成了!就这样,我们搭建了一个非常简单的 todocli。现在,如果我们想像任何其他普通的 CLI 工具一样使用它,或让朋友们使用它,我们需要把他做成一个 npm 包。所以我们在 npm 上发布它。

构建并发布到 npm

首先,确保你有一个 npm 帐户。然后,你需要登录运行该命令:

npm login

然后在项目目录内运行:

npm run prepack

这个命令将会打包项目,并将描述和标志生成 readme 文件,准备发布到 npm。

现在,在 npm 上发布:

npm publish

如果一切顺利,那么该模块已成功发布在 npm 上。如果它没有发布成功,请检查项目名称和版本。

通过全局安装,我们可以像使用其他 npm 工具一样使用它了。

npm install -g todocli

然后任何人都可以随时随地使用这些命令。

> todocli add --task="Great task!!!"> todocli show> todocli update --id=1> todocli remove --id=1

如果你跟着整篇文章走到这一步,恭喜你,你太棒了。Happy coding!

dea03b68c20c6479ca7f514053ef6fa6.png

非营利组织 freeCodeCamp.org 自 2014 年成立以来,以“帮助人们免费学习编程”为使命,创建了大量免费的编程教程,包括交互式课程、视频课程、文章等。线下开发者社区遍布 160 多个国家、2000 多个城市。我们正在帮助全球数百万人学习编程,希望让世界上每个人都有机会获得免费的优质的编程教育资源,成为开发者或者运用编程去解决问题。

你也想成为 freeCodeCamp 社区的贡献者吗?欢迎了解 招募丨freeCodeCamp 翻译计划。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值