釋出自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();
參考
- GitHub: FlyAndNotDown – quick-shell
- npm: npm – quick-shell