如何使用nodejs开发一个命令行工具

作者: 三点水滴 | 来源:发表于2019-02-17 08:41 被阅读43次
  • 开发前的思考

    • 一个命令行工具,最基础的功能就是操作文件系统,即创建、移动、查询文件和目录等等,于是乎,我想做一个 "ls" 的工具(列出当前目录下所有的文件或者子目录)。
    • 语言选择自然是javascript了,毕竟本文讲的是nodejs

    • 作为一个工具,总该要有点变化的,因此我需要读取命令行参数。当用户不输入目标目录时,默认输出当前目录的子目录或者文件

    • 用户输入可能是目录,也可能是文件,二者需要分开处理

  • 注意事项

    • 作为脚本运行的js文件,需要在文件顶部加上

      #!/usr/bin/env node

      来指明使用node来执行当前文件

    • 直接在命令行使用

      ./index.js

      就可以运行该工具,但是感觉上只是一个“可执行文件”,而非一个工具。因此,我将其作为一个项目来开发,即加上package.json文件,并添加

      
      "bin": {
      
        "nccp": "./index.js"
      
      }
      
      

      这样的好处在于:

      • 全局安装该工具之后,可以直接使用

        nccp

        来运行

      • 可以修改该工具的名称

      这样就更“像”一个命令行工具了

  • 发布到npm

    既然我想能够作为一个npm包安装在全局变量中,那最好的方式就是发布到npm。当然,我得先注册一个npm账号。然后,

    • 在当前项目根目录执行

      npm login

    • 按照提示登录之后,执行

      npm publish

      即可发布到npm,这样所有人都可以下载

    • 若是提示 “You do not have permission to publish "xxx". ”,这就表示当前要发布的包名称冲突,重新命名。最好的办法是去npm搜索一遍,确保要使用的名字未被占用

就是这么简单......附上该工具的github地址——nccp

相关文章

网友评论

    本文标题:如何使用nodejs开发一个命令行工具

    本文链接:https://www.haomeiwen.com/subject/gvkmeqtx.html