使用ガイドを含めることにより、コマンドラインスクリプトを改善する
日常のプログラミングの冒険でJavaScriptに既に精通している場合は、簡単なコマンドラインスクリプトを作成する必要があるときにJavaScriptに到達しても、それほど衝撃的ではありません。 クイックスクリプトはやや汚れる傾向があり、通常は使用法のドキュメントが不足しています。 The command-line-usage
パッケージを使用すると、プロ並みのスクリプト使用法の出力をすばやくダーティなスクリプトに簡単に追加できます。
入門
はじめに command-line-usage
、お気に入りのパッケージマネージャーを介して追加する必要があります。
# npm
$ npm install command-line-usage --save
# Yarn
$ yarn add command-line-usage
必ずインポートしてください command-line-usage
:
const cliUsage = require('command-line-usage');
この記事はに焦点を当てていますが command-line-usage
パッケージ、パッケージがを活用していることに注意する価値があります chalk
テンプレートリテラル構文と非常にうまく機能します chalk
のような方法 chalk.red()
.
使用したい場合 chalk
テンプレートリテラル構文の代わりにメソッドを使用する場合は、必ずチョークもインポートしてください。これは、 command-line-usage
:
const chalk = require('chalk');
詳細については、 chalk
記事Chalkを使用したコマンドラインNode.jsスクリプトからの出力のスタイリングを確認できます。
基本的な使用法
すべてがインストールされ、適切にインポートされると、いくつかの簡単な使用情報を作成できます。
const sections = [
{
header: '🐊 Alligator.io CLI Script',
content: 'From {bold your friends} at {underline Alligator.io}',
},
{
header: 'Usage',
content: [
'% script {bold --file} {underline /path/to/file} ...',
],
},
];
const usage = cliUsage(sections);
console.info(usage);
The sections
配列には、使用情報に表示する情報のグループが含まれています。 各セクション内のさまざまなオプションを使用して、必要な数のセクションを作成できます。
の実行 sections
配列スルー command-line-usage
文字列を生成し、それをコンソールに記録できます。
リスト引数
スクリプトの引数を一覧表示するには、 optionList
一連のオプションをとるプロパティ:
const sections = [
{
header: 'Mandatory Options',
optionList: [
{
name: 'file',
alias: 'f',
type: String,
typeLabel: '{underline /path/to/file}',
description: 'The file to do stuff with',
},
],
},
{
header: 'Optional Stuff',
optionList: [
{
name: 'letters',
alias: 'l',
type: String,
typeLabel: '{underline letter} ...',
description: 'This option takes multiple values',
multiple: true,
defaultOption: 'a b c',
},
{
name: 'help',
alias: '?',
type: Boolean,
description: 'Print this usage guide.',
}
],
},
];
const usage = cliUsage(sections);
console.info(usage);
The command-line-usage
packageは、テーブルレイアウトで引数の間隔を空けることにより、すべてのハードワークを処理します。
テーブルレイアウト
引数リストを提示するときに使用されるテーブルレイアウトと言えば、を渡すときにテーブルレイアウトを使用することもできます content
プロパティ配列。 文字列の代わりにオブジェクトの配列を渡すだけで、 command-line-usage
表のように情報をフォーマットします。
const sections = [
{
header: 'Table Layout Example',
content: [
{
desc: 'More great Alligator.io articles:',
url: '{underline https://alligator.io}',
},
{
desc: '`command-line-usage` on GitHub:',
url: '{underline https://git.io/fh9TQ}',
},
],
},
];
const usage = cliUsage(sections);
console.info(usage);
楽しんで
時々あなたはただ楽しみたいだけです。 先に述べたように、 command-line-usage
活用できる chalk
つまり、色のスプラッシュで使用量の出力にスパイスを加えることができます。
少しクレイジーにするために、内部のデモシーンアーティストをチャネリングし、エスケープコードを備えたASCII / ANSIアートをまとめる場合は、 raw
物事が正しく表示されることを保証するためのプロパティ。
const sections = [
{
header: 'Raw Like Sushi',
raw: true,
content: [
'{red ,iiiiiiiiii,}',
'{red ,iiiiiiiiiiiiii,}',
`{red iii' 'ii'}`,
`{white '.________.'}`,
],
},
];
const usage = cliUsage(sections);
console.info(usage);
🍣
結論
と同じくらい素晴らしい command-line-usage
パッケージは、スクリプトの使用情報を簡単に生成できるようにするためのものですが、まだ多少不足しています。 覚えておくべきことの1つは、パッケージは実際にはコマンドライン引数の処理を行わないということです。
コマンドライン引数の実際の処理は、引数ベクトルを解析して独自のソリューションをローリングすることによって処理する必要があります。 process.argv
自分で、またはcommanderのようなパッケージを利用して。
詳細については、記事Node.jsスクリプトでのコマンドライン引数の処理をご覧ください。