nodejs 命令行、自定義

来源:http://www.cnblogs.com/cqhaibin/archive/2016/08/19/5786174.html
-Advertisement-
Play Games

一、必備插件 1. babel:es6語法支持,需要babel-perset-es2015(轉換成es5執行)、babel、babel-core(程式執行) 2. commander:自定義命令插件,提供參數的傳遞等 3. liftoff:實現對命令視窗的輸入監聽,以及命令格式化規格。 4. min... ...


一、必備插件

1. babel:es6語法支持,需要babel-perset-es2015(轉換成es5執行)、babel、babel-core(程式執行)

2. commander:自定義命令插件,提供參數的傳遞等

3. liftoff:實現對命令視窗的輸入監聽,以及命令格式化規格。

4. minimist:讀取命令行參數插件

以上插件都可以通過npm直接安裝。

二、示例代碼分析:

2.1. cli.js

var liftOff = require("liftoff");
import app from "./app";
var argv = require("minimist")(process.argv.slice(2));
var cli =new liftOff({
name: "sam",
processTitle: 'samLong',
moduleName: "sam",
extensions:{
'.js':null
}
});
cli.launch({
cwd: argv.r || argv.root,
configPath: argv.f || argv.file
},function(env){
console.log("命令名稱:" + argv["_"]);
console.log( "執行路徑:" + env.cwd);
var commander = require('commander');
var _app = new app();
_app.register(commander);
});

1. liftOff類:通過導入liftOff第三方插件實現對命令行參數進行解析,且通過liftOff的實例方法launch進行捕獲

2. require("minimist")(process.argv.slice(2)):將命令行參數轉換為對象

3. ./app:導入命令執行類

2.2. app.js

class App
{
    register(commander)
    {
        commander
            .option('-d --date', "顯示時間")
            .parse(process.argv);
        if (commander.date) {
            console.log('date命令被執行');
        }
    }
};
export default App;

通過commander實現的一個簡單的命令執行類。

2.3. index.js

require("babel-core/register"); //導入babel-core,用於在代碼中轉換我es6
require("./src/app");
require('./src/cli');

2.4. 執行效果:

三、GIt地址

[email protected]:cqhaibin/commandertest.git


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 傻了吧唧的裝雙系統.成功的乾崩了原本的系統.現在重裝VS.閑的沒事胡扯幾句. WindowsAPI在每一臺Windows系統上開放標準API供開發人員調用.功能齊全.在這裡只介紹三個部分. 1.利用API控制滑鼠鍵盤. 2.對外部程式的讀寫和監聽 3.對外部程式視窗的改動. 外部程式的意思就是.假設 ...
  • Hibernate提供了兩種映射一對一映射關聯關係的方式: 01.按照外鍵映射 02.按照主鍵映射 下麵以員工賬號表和員工檔案表(員工賬號和檔案表之間是一對一的關係)為例,介紹這兩種映射關係,並使用這兩種 映射方式分別完成以下持久化操作 (1)保存員工檔案的同時分配給員工一個賬號 (2)載入員工檔案 ...
  • 這段代碼很有意義,用於把一個程式的界面嵌入到我們自己程式的某個指定窗體上. 比如在某個項目里,我需要把基恩士的激光掃描輪廓顯示給客戶看,但是激光的DLL中並沒有這種功能提供. 於是我想先啟動激光的官方程式用以顯示輪廓, 然後再把這種顯示界面嵌入到我自己程式的界面上指定的位置上. 在筆者構想的PLC仿 ...
  • jquery easyui使用(三)······datagrid載入數據(未解決) ...
  • 工具幫幫我,tool885.com,成功登錄“Windows 應用商店”。 ...
  • .NET Core中的認證管理解析 0x00 問題來源 在新建.NET Core的Web項目時選擇“使用個人用戶賬戶”就可以創建一個帶有用戶和許可權管理的項目,已經準備好了用戶註冊、登錄等很多頁面,也可以使用AuthorizeAttribute進行各種許可權管理,看起來似乎十分方便。不過生成的代碼都替我 ...
  • WPF設計界面過程中,有時需要設計一種可以手動滑動修改並實時顯示的進度條 進度條,效果如下: 顏色、圖標、節點什麼的,都可以重新替換。 前端XMAL代碼: <UserControl x:Class="WpfApplication4.ProgressBarControl" xmlns="http:// ...
  • myeclipse中使用maven插件的時候,運行run as maven build的時候報錯 Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...