溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么制作CLI可能用到的輪子

發布時間:2022-02-28 09:56:31 來源:億速云 閱讀:204 作者:小新 欄目:web開發

小編給大家分享一下怎么制作CLI可能用到的輪子,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

開始之前先要了解npm的bin用法。

 "bin": {

   "init": "index.js"

 }

執行npm install -g就在全局安裝了init命令,在CMD里就可以執行init。

執行之后,由于在我本機目前默認是由VS Code打開JavaScript文件,所以效果并不是執行代碼(這個問題下文有繼續,千萬別走開,有個坑)。從上面日志打印可以看出,實際上Node.js相當于建立了一個快捷方式,init指向安裝到全局模塊的該工程的index.js,而init是被加入了到環境變量PATH可以直接執行。

也可以使用npm link直接將index.js鏈接到PATH里,但先要npm uninstall -g卸載一下,否則會報重復了的錯誤。

現在正式開始觀賞輪子,以下排名不分先后。

command.js

command.js可以和剛才bin生成的全局命令一起配合使用,有一個優勢是它居然還有中文文檔,雖然E文對我來說不是難事,但是中文的還是讀起來快多了。

 const { program } = require("commander");

 program

   .version("0.0.1")

   .arguments("<file>")

   .description('Login Module')

   .option("-u, --username <username>", "The user to authenticate as")

   .option("-p, --password <password>", "The user's password")

   .action(function (file) {

     console.log(program.opts());

     console.log(file);

   })

   .parse(process.argv);

一開始使用全局命令不能接受參數而直接使用Node.js執行是可以的。

后來找了下,原來主入口文件開頭的#! /usr/bin/env node是必須的,加入后變為

 #! /usr/bin/env node 

 const { program } = require("commander");

 program

   .version("0.0.1")

   .arguments("<file>")

   .description("Login Module")

   .option("-u, --username <username>", "The user to authenticate as")

   .option("-p, --password <password>", "The user's password")

   .action(function (file) {

     console.log(program.opts());

     console.log(file);

   })

   .parse(process.argv);

再次執行(有可能需要重新npm [un]install -g或者npm [un]link),這次OK了

arguments里帶<>的參數表示是必須的,如果缺失,就不能繼續進行。

參數里要定義必填項使用。requiredOption,比如program.requiredOption('-c, --cheese <type>', 'pizza must have cheese');。

commander.js根據參數也自動幫你生成了幫助命令init --help

更詳細的用法請參考官方文檔。

svg-term-cli

svg-term-cli用來生成ascii碼動畫的SVG文件。它需要全局安裝

 npm install -g svg-term-cli

現在從https://asciinema.org/a/113643上生成SVG動圖

 svg-term --cast 113643 --out examples/parrot.svg --window --no-cursor --from=4500

結束后會在examples下生成一個parrot.svg的文件,打開這個文件看看,太浪了

progress

progress用來生成一個等待進度條。

 var ProgressBar = require("progress");

 var bar = new ProgressBar(":bar", { total: 40 });

 var timer = setInterval(function () {

   bar.tick();

   if (bar.complete) {

     console.log("\ncomplete\n");

     clearInterval(timer);

   }

 }, 1000);

生成如下的進度條

我們常見的下載進度展示,就可以用它來實現

ora

對于不確定的進度情況,就可以使用ora了。它就是那種愛的魔力轉圈圈的樣式。

 const ora = require("ora");

 const spinner = ora("Loading unicorns")。start();

 setTimeout(() => {

   spinner.color = "yellow";

   spinner.text = "Loading rainbows";

 }, 1000);

 setTimeout(() => {

   spinner.fail();

 }, 3000);

以上是“怎么制作CLI可能用到的輪子”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cli
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女