30行代码造了一个1494start项目的轮子

1494个start的项目:minimist

30行代码轮子:argps

项目功能:

  1. 解析命令行启动用户所输入的参数,转成Object。
  2. 需要支持多个命令、重复参数合并到数组、监测无名字参数合并到_中。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,009评论 19 139
  • 曾有部电影,“那些年我们一起追的女孩”,一个在班里学习成绩吊车尾的男生为了自己的初恋女孩,想尽办法表达自己的爱。每...
    Minieye阅读 307评论 0 1
  • 雨又下了一整夜。 漉漉冷雨,人世恍兮。 “梦中是平常院落残落门庭,两人偶然间邂逅,一同关怀前路崎岖,闲话油盐家常。...
    晋元阅读 327评论 0 2
  • 无论你想不想知道,我要说的是,如下些许不着四六的逼逼叨,单纯是为了打发从此刻到天大亮后下楼买手抓饼的这一小...
    信夫阅读 377评论 0 1