quick-shell.js简介

作者: Kindem | 来源:发表于2018-07-10 23:32 被阅读9次

发布自Kindem的博客,欢迎大家转载,但是要注意注明出处

quick-shell.js简介

一直想自己发布一个npm包试试,正巧刚刚学完操作系统,写了很多shell类型的小程序,就想着要不在nodejs上封装一套用于快速创建简单shell类应用的库,于是quick-shell.js就诞生了

使用quick-shell你可以快速构建一个shell类型的简单应用,非常适合使用js做课设或者一些小demo

安装

该包已经发布在npm上了,可以直接使用npm安装到项目依赖

npm install quick-shell

基本使用

let shell = require('quick-shell');

shell
    .welcome('welcome to my shell program')
    .prompt('$ ')
    .listen('echo', (params) => {
        console.log(params);
    })
    .listen('add', (params) => {
        let temp = params.split(' ');
        console.log(
            (parseInt(temp[0]) + parseInt(temp[1])).toString()
        );
    })
    .start();

像这样间可以简单地构建一个shell类型应用,上面的代码运行时会像这样:

welcome to my shell program
$

当你输入 'echo hello world':

welcome to my shell program
$ echo hello world
hello world

当你输入 'add 7 9':

welcome to my shell program
$ add 7 9
16

就像这样,每当你想要为你自己的shell应用添加一条指令,只需要添加它的响应即可

API

安装:

npm install quick-shell

链式调用:

shell
    .//...
    .//...
    .start();

设置欢迎文字:

shell
    .welcome('your welcome text');

设置提示符:

shell
    .prompt('# ');

自定义错误提示:

shell
    .error({
        inputNothing: 'you input nothing',
        noMatchedInstruction: 'have no matched instruction'
    });

创建一个指令监听器:

// 这里的 params 以 'param param param' 的形式存在
shell
    .listen('echo', (params) => {
        console.log(params);
    });

如果你还是不满足于现有的功能,你可以使用内部定义的事件来进行自定义操作:

shell
    .onStart(() => {
        // do something on shell start
    })
    .onExit(() => {
        // do something on shell exit
    })
    .onLine((line) => {
        // do something when a line inputed
    })
    .onCaught((instruction, params) => {
        // do something when a instruction was caught
    });

开始运行程序:

shell
    .start();

参考

相关文章

  • quick-shell.js简介

    发布自Kindem的博客,欢迎大家转载,但是要注意注明出处 quick-shell.js简介 一直想自己发布一个n...

  • 18旅游二班各组自我简介汇总

    一组简介 二组简介 三组简介 四组简介 五组简介 六组简介 七组简介 八组简介

  • 简介

    上辈子,洛幽喜欢了东凡一辈子,没有结果,之后她死了,她不后悔,只是为什么她一睁眼,嗯?捏了捏自己的脸,她这是回到了...

  • 简介

    1.主动地去阅读。 2.阅读目的:获得资讯,获得理解 前者为了增进资讯,获得信息,不能增加理解力。后者为了理解更多...

  • 简介

    姓名:赵金星 电话:13903984903 坐标:河南三门峡市陕州区。 三个标签的自我介绍: 1.时间管理践行者 ...

  • 简介

    朱凝不过打错个字,便被天打雷劈回古代。 为毛别人穿个废柴嫡女,她穿个废柴庶女?地位更低了哎 哇喔,别人嫁王爷,她嫁...

  • 简介

    凌波网络考试系统,是一套运行于Windows系统之上的无纸化网络考试软件。包括试卷编辑、分发试卷、学生答卷、自动阅...

  • 简介

    名字:笨小孩 不是富二代的笨小孩为了生活选择了编程。在大多数人眼里可能感觉编程是很无聊很辛苦经常加班的事情,其实人...

  • 简介

    A Native Client web application consists of JavaScript, H...

  • 简介

    选择django作为毕设项目,和日后工作内容。故在简单得做了一个blog和毕设系统之间,想深入了解django,会...

网友评论

    本文标题:quick-shell.js简介

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