まずコンピューター上に node.js 環境があることを確認し
、コマンド ラインで次のコードを実行してpackage.json
ファイルを初期化する必要があります
npm init -y
このとき、必ずエラーが報告されます。コマンドラインでmycli
実行します。
カスタム コマンド
package.json
を構成してbin
フィールドを追加し、 mycli
コマンドを
「bin」に関連付けます。
"mycli": "./test.js"
/test.js
ファイル console.log を作成します(
「mycli コマンドが正常に実行されました」)。
install
コマンドが必要ですが、プロジェクトは npm に公開されていないため、当面はnpm link
コマンドを使用して、 mycli
コマンドをグローバル世界に関連付けます。この時点で、コマンド ラインからmycli
実行すると、エラーは報告されなくなります。
スクリプト構成
test.js ファイル:
console.log("mycli コマンド実行成功");
その後、 mycli
を実行すると、エラー ポップアップ ウィンドウが表示されます。
これは、 mycli
コマンドを実行する場合、コンピュータにファイルを実行させるのと同じであり、コンピュータ システムはjs ファイルを直接実行できないため、スクリプト コードの最初の行にnode.js
コンピュータ上で実行するプログラムです。
#!/usr/bin/env ノード
実行環境が変更されたため、以前にリンクされたファイルの場所はC:Program Filesnodejsnode_modules
である可能性がありますので、 mycli
見つけて削除し、実行する必要があります。もう一度npm link
。
ここで、コンソールでmycli
再度実行すると、コンソールが正しく印刷されることがわかります。
Chalk
コマンド ラインを使用して、カラフルなフォントを出力します。Ora
ローディング効果。プログレス ライブラリcommander
デザイン コマンドinquirer
インタラクティブ機能 (質問するなど)Chalk
npm install [email protected] -S
const チョーク = require("チョーク"); // チョーク // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(こんにちは);
Ora
npm install [email protected] -S
const ora = require("ora"); // オラ const スピナー = ora({ テキスト: 「インストール中...」 }); スピナー.スタート(); setTimeout(() => { // スピナー.stop(); Spinner.succeed("インストール成功"); // console.log("インストール成功"); }, 2000)
start
読み込みを開始stop
読み込みを停止しますsucceed
成功したスタイルで読み込みを終了しますvue -V
git --version
vue create
やその他のコマンドなど、
コマンダー
開発で一般的に使用されるコマンドは、そのようなコマンドを実装するためにコマンダー ライブラリを使用する必要があります。使用したコマンドの後にある-V
--help
などはコマンドのパラメータとして理解できるので、これらのパラメータを取得し、パラメータの違いを判断してさまざまなイベントを処理する必要があります。
ノード環境では、このパラメーターはprocess.argv
を通じて取得できます。コマンダーライブラリは、ユーザーの入力によって伝えられる命令を判断することなく、いくつかのメソッドをカプセル化するのに役立ちます。
const command = require("commander");
npm install [email protected] -S
// ... Commander.parse(process.argv); //
インストールが完了すると、コマンダーは--help
などのコマンドを自動的に提供します。以下でテストしてみましょう。
mycli --help は、
コマンダーの
. version("1.0.0");
mycli -V
を実行すると、コンソールに1.0.0
のバージョン番号が表示されることがわかります。
カスタム コマンド メソッド
commander.option(指令名, 描述, 回调函数)
--init
コマンドに設定します。command.option("--init", "this is init", () => { // チョーク // const hello = chalk.red("hello"); // const hello = chalk.blue.bgRed("hello"); // const hello = chalk.blue.bgYellow("hello"); const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("hello"); console.log(こんにちは); // オラ const スピナー = ora({ テキスト: 「インストール中...」 }); スピナー.スタート(); setTimeout(() => { // スピナー.stop(); Spinner.succeed("インストール成功"); // console.log("インストール成功"); }、1000) })
次に、 mycli --init
テストを実行します。
、commandor.option("--number <num>", "log a number", (num) => { コンソール.ログ(番号); })
<参数名>
渡す必要があるパラメータを示し、 [参数名]
は渡す必要のないパラメータを示します。コンソールにmycli --number 100
と入力して Enter を押すと、 100
出力されることがわかります。
カスタム コマンド メソッド
Commander.command("create <projectName>").action((projectName)=>{ console.log(プロジェクト名); })
mycli create xx
を実行して Enter を押すと、コンソールにxx
が確認できます。
ヘルプを表示します
mycli --help
構成した手順とコマンドがヘルプ リストに表示されることがわかります。
recruiter
npm install recruiter -S
prompt
メソッド.prompt([ { type: "input", name: "username", メッセージ: 「ユーザー名を入力してください:」 } ]).then((answer)=>{ })
type
質問のタイプを示し、値はinput
、 number
、 password
、 editor
などです。
answer
は{username: 输入的值}
です。
input
です。const recruiter = require("inquirer"); コマンダー.command("ユーザーの追加").action(() => { 問い合わせ者.プロンプト([ { タイプ: "入力"、 名前: "ユーザー名", メッセージ: 「ユーザー名を入力してください:」 } ]).then((答え) => { console.log(回答); }) })
confirm
("testcon").action(() => { 問い合わせ者.プロンプト([ { タイプ:「確認」、 名前:「年齢」、 メッセージ:「あなたは18歳以上ですか?」 } ]).then((答え) => { console.log(回答); }) })
y
またはn
入力して判定します。
list
command.command("testlist").action(() => { 問い合わせ者.プロンプト([ { タイプ:「リスト」、 名前: "lib"、 メッセージ: "使用するフレームワークを選択してください:", 選択肢: [ "vue2"、 「vue3」、 「反応する」、 「しなやか」、 】 } ]).then((答え) => { console.log(回答); }) })
mycli testlist
コマンドを実行します。
download-git-repo はコードをプルするためのツールです。
const downgit = require("download-git-repo");
npm install [email protected] -S
をインストールします
downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) { コンソールログ(エラー) })
downgit
メソッドの最初のパラメーターは、kongcodes ユーザーのvue3-vant
プロジェクト テンプレートを github からダウンロードすることであると理解されています。 2 番目のパラメーターdownUrl
は、テンプレートをダウンロードするディレクトリです。 3 番目のパラメーターclone
は、ダウンロードにgit clone
使用するかどうかです。 4 番目のパラメータは、ダウンロードが完了したときに実行されるいくつかのパラメータです。
、command.command("create <projectName>").action((projectName) => {
command
const spinner = ora({ テキスト: 「https://github.com/kongcodes/vue3-vant... をダウンロードしています...」 }); spinner.start(); fs.mkdirSync(`./${プロジェクト名}`); const downUrl = `${process.cwd()}\${プロジェクト名}`; downgit("github:kongcodes/vue3-vant", downUrl, { clone: false }, function (err) { if (err) throw err; spinner.stop(); console.log(chalk.green("downgit success")); }) })
mycli create pro
を実行し、Enter キーを押します。pro pro
が現在のディレクトリに作成され、 vue3-vant
テンプレートがこのディレクトリにダウンロードされます。
https://github.com/kongcodes/mycli