资讯专栏INFORMATION COLUMN

Node.js命令行工具开发

tunny / 2340人阅读

摘要:命令行工具开发使用开发命令行工具是开发者应该掌握的一项技能,适当编写命令行工具以提高开发效率。创建命令创建一个的命令,当用户输入时,终端显示。修改文件内容添加命令在目录下新建文件执行命令解析输入信息我们希望是由用户输入的,终端应该显示为。

Node.js命令行工具开发

使用Node.js开发命令行工具是开发者应该掌握的一项技能,适当编写命令行工具以提高开发效率。

hello world

老规矩第一个程序为hello world。在工程中新建bin目录,在该目录下创建名为helper的文件,具体内容如下:

</>复制代码

  1. #!/usr/bin/env node
  2. console.log("hello world");

修改helper文件的权限:

</>复制代码

  1. $ chmod 755 ./bin/helper

执行helper文件,终端将会显示hello world

</>复制代码

  1. $ ./bin/helper
  2. hello world
符号链接

接下来我们创建一个符号链接,在全局的node_modules目录之中,生成一个符号链接,指向模块的本地目录,使我们可以直接使用helper命令。
在工程的package.json文件中添加bin字段:

</>复制代码

  1. {
  2. "name": "helper",
  3. "bin": {
  4. "helper": "bin/helper"
  5. }
  6. }

在当前工程目录下执行npm link命令,为当前模块创建一个符号链接:

</>复制代码

  1. $ npm link
  2. /node_path/bin/helper -> /node_path/lib/node_modules/myModule/bin/helper
  3. /node_path/lib/node_modules/myModule -> /Users/ipluser/myModule

现在我们可以直接使用helper命令:

</>复制代码

  1. $ helper
  2. hello world
commander模块

为了更高效的编写命令行工具,我们使用TJ大神的commander模块。

</>复制代码

  1. $ npm install --save commander

helper文件内容修改为:

</>复制代码

  1. #!/usr/bin/env node
  2. var program = require("commander");
  3. program
  4. .version("1.0.0")
  5. .parse(process.argv);

执行helper -hhelper -V命令:

</>复制代码

  1. $ helper -h
  2. Usage: helper [options]
  3. Options:
  4. -h, --help output usage information
  5. -V, --version output the version number
  6. $ helper -V
  7. 1.0.0

commander模块提供-h, --help-V, --version两个内置命令。

创建命令

创建一个helper hello 的命令,当用户输入helper hello ipluser时,终端显示hello ipluser。修改helper文件内容:

</>复制代码

  1. #!/usr/bin/env node
  2. var program = require("commander");
  3. program
  4. .version("1.0.0")
  5. .usage(" [options]")
  6. .command("hello", "hello the author") // 添加hello命令
  7. .parse(process.argv);

bin目录下新建helper-hello文件:

</>复制代码

  1. #!/usr/bin/env node
  2. console.log("hello author");

执行helper hello命令:

</>复制代码

  1. $ helper hello ipluser
  2. hello author
解析输入信息

我们希望author是由用户输入的,终端应该显示为hello ipluser。修改helper-hello文件内容,解析用户输入信息:

</>复制代码

  1. #!/usr/bin/env node
  2. var program = require("commander");
  3. program.parse(process.argv);
  4. const author = program.args[0];
  5. console.log("hello", author);

再执行helper hello ipluser命令:

</>复制代码

  1. $ helper hello ipluser
  2. hello ipluser

哦耶,终于达到完成了,但作为程序员,这还远远不够。当用户没有输入author时,我们希望终端能提醒用户输入信息。

提示信息

helper-hello文件中添加提示信息:

</>复制代码

  1. #!/usr/bin/env node
  2. var program = require("commander");
  3. program.usage("");
  4. // 用户输入`helper hello -h``helper hello --helper`时,显示命令使用例子
  5. program.on("--help", function() {
  6. console.log(" Examples:");
  7. console.log(" $ helper hello ipluser");
  8. console.log();
  9. });
  10. program.parse(process.argv);
  11. (program.args.length < 1) && program.help(); // 用户没有输入信息时,调用`help`方法显示帮助信息
  12. const author = program.args[0];
  13. console.log("hello", author);

执行helper hellohelper hello -h命令,终端将会显示帮助信息:

</>复制代码

  1. $ helper hello
  2. Usage: helper-hello
  3. Options:
  4. -h, --help output usage information
  5. Examples:
  6. $ helper hello ipluser
  7. $ helper hello -h
  8. Usage: helper-hello
  9. Options:
  10. -h, --help output usage information
  11. Examples:
  12. $ helper hello ipluser

到此我们编写了一个helper命令行工具,并且具有helper hello 命令。
更多的使用方式可以参考TJ - commander.js文档。

关键知识点

</>复制代码

  1. npm link

  2. </>复制代码

    1. ruanyifeng

  3. commander.js

  4. </>复制代码

    1. TJ

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87841.html

相关文章

  • 从零开始打造个人专属命令工具集——yargs完全指南

    摘要:自阮大神的文章发布以来,有了一些改动,添加有很多有用的功能,特别是这个功能,对打造命令行工具集合非常有用,所以写一个新版本的教程还是有必要的。 前言 使用命令行程序对程序员来说很常见,就算是前端工程师或者开发gui的,也需要使用命令行来编译程序或者打包程序 熟练使用命令行工具能极大的提高开发效率,linux自带的命令行工具都非常的有用,但是这些工具都是按照通用需求开发出来的,如果有一些...

    wanghui 评论0 收藏0
  • node命令工具开发【翻译小工具

    摘要:命令行工具开发有许多命令行工具。现在我们就用来开发一个实用的命令行小工具一初探一个最简单的命令行工具首先我们新建一目录,然后执行生成文件新建一目录并在目录下创建一个执行我们可以看到终端输出。。 node命令行工具开发 NodeJs有许多命令行工具。它们全局安装,并提供一个命令供我们使用,完成相应的功能。 现在我们就用node来开发一个实用的命令行小工具 一.初探 一个最简单的命令行工具...

    Yang_River 评论0 收藏0
  • Node命令工具开发【看段子小工具

    摘要:我们的小项目就初始化成功了,就可以认真思考代码了首先分析糗事百科我们打开糗事百科会发现它的还是很简单,由于我们只是爬取段子所以如下,就是页数。 Node命令行工具开发【看段子】 你有没有上班想看笑话却又怕领导发现的经历?现在我们就用几十行代码写一个命令行看笑话段子的小程序,从此无需担心领导的视察。这篇文章和上一篇差不多都是命令行小工具开发,不过本篇更偏向于小爬虫的开发 总览:命令行看段...

    kelvinlee 评论0 收藏0
  • 开发一个Node命令小玩具全过程--高颜统计工具

    摘要:相信熟悉系统的,对于一些等命令用起来应该爱不释手,这也是我想要开发一个便捷命令行的初衷,其次就是记录一个完整开源小玩具的全过程。 背景 命令行工具对于我们来说非常的熟悉,一些命令行的操作也极大的简化了我们的日常工作。本文就基于我写的一个Node命令行代码计数器来进行展开。 相信熟悉linux系统的,对于一些ps,grep,cp,mv…等命令用起来应该爱不释手,这也是我想要开发一个便捷命...

    ytwman 评论0 收藏0
  • Node.js 写了个将 markdown 笔记发布到 Evernote 的命令工具

    摘要:我一直是印象笔记的用户,但是苦于它一直不支持语法,于是就开发了一个简单的命令行工具,可以将笔记发布到印象笔记。比如我为了实现印象笔记的列表,就写了一个小插件。 我一直是印象笔记的用户,但是苦于它一直不支持 markdown 语法,于是就开发了一个简单的命令行工具 evermark,可以将 markdown 笔记发布到印象笔记。 GitHub 地址:https://github.com/...

    vibiu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<