30行代碼造了一個1494start項目的輪子

1494個start的項目:minimist

30行代碼輪子:argps

項目功能:

  1. 解析命令行啟動用戶所輸入的參數(shù),轉(zhuǎn)成Object。
  2. 需要支持多個命令、重復參數(shù)合并到數(shù)組、監(jiān)測無名字參數(shù)合并到_中。

Prower by Regex

#index.js
module.exports = function ( args ) {
    var result = {
        '_':[]
    };
 
    var value = args.join( ' ' );
    
    var reStr = /(-[^\s-](?:-\S+)?|--\S+)\s*([^\s-]*)?/g;
    
    var match;
    
    while( ( match = reStr.exec( value ) ) ) {
        var key = match[1].replace( /-/g,'' );
        match[2] = typeof match[2] === 'undefined' ? 'true' : match[2];
        if( key in result ) {
            if( result[key] instanceof Array ) {
                result[key].push( match[2] );
            }else{
                result[key] = new Array( result[key] , match[2] );
            }
        }else{
            result[key] = match[2];
        }
    }
    var _value = value.replace( /-[^-\s]{2,}|--?\S+\s*[^-\s]*/g,'' )
    .replace( /\s*^\s*|\s+$/g,'' )
    .split( /\s+/ );
    
    result._ = result._.concat( _value );
    return result;
};

本項目地址:argps

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,687評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 曾有部電影,“那些年我們一起追的女孩”,一個在班里學習成績吊車尾的男生為了自己的初戀女孩,想盡辦法表達自己的愛。每...
    Minieye閱讀 339評論 0 1
  • 雨又下了一整夜。 漉漉冷雨,人世恍兮。 “夢中是平常院落殘落門庭,兩人偶然間邂逅,一同關(guān)懷前路崎嶇,閑話油鹽家常。...
    晉元閱讀 353評論 0 2
  • 無論你想不想知道,我要說的是,如下些許不著四六的逼逼叨,單純是為了打發(fā)從此刻到天大亮后下樓買手抓餅的這一小...
    信夫閱讀 450評論 0 1

友情鏈接更多精彩內(nèi)容