基於`nodejs`開啓你的`cli`之路

預備

  1. 分分鐘使用默認選項安裝完nodejs
  2. 分分鐘使用sudo npm install -g yo安裝完yeoman
  3. 經過sudo npm install -g generator-cli-starter安裝cli開發腳手架

OK, 如今咱們能夠使用yo cli-starter命令開始咱們cli開發之旅了javascript

建立cli項目

bashyo cli-starter

按照提示輸入項目名稱命令名稱,完成cli項目建立。後續的教程中咱們將使用hi做爲你的命令名稱,若是你使用了其餘命令名稱,請注意替換java

Let's try first

如今命令行中輸入以下命令(若是你用的不是hi,注意替換)node

bashhi

效果以下:git

圖片描述

試個常見命令?

咱們接下來就開發一個相似ls, ls -all的命令,這裏面須要用到一個node模塊commander,先來安裝一下:github

進入該項目根目錄執行npm install --save commandernpm

而後用你喜歡的editor打開bin/hi.js,並用如下內容替換原先的代碼:bash

javascript#!/usr/bin/env node

'use strict';

var program = require('commander');

program
    .version('0.0.1');//聲明hi的版本號

program
    .command('list')//聲明hi下有一個命令叫list
    .description('list files in current working directory')//給出list這個命令的描述
    .option('-a, --all', 'Whether to display hidden files')//設置list這個命令的參數
    .action(function(options) {//list命令的實現體
        var fs = require('fs');
        //獲取當前運行目錄下的文件信息
        fs.readdir(process.cwd(), function(err, files) {
            var list = files;
            if (!options.all) {//檢查用戶是否給了--all或者-a的參數,若是沒有,則過濾掉那些以.開頭的文件
                list = files.filter(function(file) {
                    return file.indexOf('.') !== 0;
                });
            }
            console.log(list.join(' '));//控制檯將全部文件名打印出來
        });
    });

program.parse(process.argv);//開始解析用戶輸入的命令

OK,如今來試試咱們剛寫好的命令吧,ui

bashhi -V

圖片描述

bashhi list

圖片描述

bashhi list -a

圖片描述

如何發佈

首先須要在Github上建立一個項目,並把咱們剛纔寫的代碼同步上去。spa

而後經過npm publish命令將你的cli發佈到npm命令行

而後其餘用戶就能夠經過npm install -g [項目名稱]將你的命令安裝到本地使用了

相關文章
相關標籤/搜索