開発者ドキュメント

使用ガイドを含めることにより、コマンドラインスクリプトを改善する

日常のプログラミングの冒険で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スクリプトでのコマンドライン引数の処理をご覧ください。

モバイルバージョンを終了