詳細は?jsコマンドラインツールの開発方法

4734 ワード

前言
Nodeはフロントエンド開発に大きな変化をもたらし、フロントエンド開発の自動化を促進し、開発作業を簡素化し、さまざまなツールパッケージを利用して生産環境を生成することができます.sass src/sass/main.scss dist/css/main.cssを実行すると、Sassファイルがコンパイルされます.
実際の開発では、独自のニーズがある可能性があります.
では、ノードコマンドラインツールを作成する方法を学ばなければなりません.
hello world
古いルールの最初のプログラムはhello worldです.プロジェクトにbinディレクトリを新規作成し、そのディレクトリの下にhelperというファイルを作成します.具体的な内容は次のとおりです.

#!/usr/bin/env node

console.log('hello world');

helperファイルの権限を変更するには:

$ chmod 755 ./bin/helper

helperファイルを実行すると、端末はhello worldを表示します.

$ ./bin/helper
hello world

シンボルリンク
次に、グローバルなnode_にシンボルリンクを作成します.modulesディレクトリでは、helperコマンドを直接使用できるように、モジュールのローカルディレクトリへのシンボルリンクを生成します.
工事中のパッケージjsonファイルにbinフィールドを追加するには:

{
 "name": "helper",
 "bin": {
 "helper": "bin/helper"
 }
}

現在のプロジェクトディレクトリの下でnpm linkコマンドを実行し、現在のモジュールにシンボルリンクを作成します.

$ npm link

/node_path/bin/helper -> /node_path/lib/node_modules/myModule/bin/helper
/node_path/lib/node_modules/myModule -> /Users/ipluser/myModule
helperコマンドを直接使用できます.

$ helper
hello world

commanderモジュール
コマンドラインツールをより効率的に作成するために、TJオオカミのcommanderモジュールを使用します.

$ npm install --save commander

helperファイルの内容は次のように変更されました.

#!/usr/bin/env node

var program = require('commander');

program
 .version('1.0.0')
 .parse(process.argv);
helper -hおよびhelper -Vのコマンドを実行します.

$ helper -h

 Usage: helper [options]

 Options:

 -h, --help  output usage information
 -V, --version output the version number

$ helper -V
1.0.0

commanderモジュールは、-h --help-V--versionの2つの内蔵コマンドを提供します.
コマンドの作成helper hello のコマンドが作成され、ユーザがhelper hello ipluserを入力すると、端末はhello ipluserを表示する.helperファイルの内容を変更するには:

#!/usr/bin/env node

var program = require('commander');

program
 .version('1.0.0')
 .usage(' [options]')
 .command('hello', 'hello the author') //   hello  
 .parse(process.argv);

binディレクトリの下にhelper-helloファイルを新規作成するには:

#!/usr/bin/env node

console.log('hello author');
helper helloコマンドを実行します.

$ helper hello ipluser
hello author

解析入力情報
authorはユーザによって入力されることを望んでおり、端末はhello ipluserと表示されるべきである.helper-helloファイルの内容を修正し、ユーザー入力情報を解析する:

#!/usr/bin/env node

var program = require('commander');

program.parse(process.argv);

const author = program.args[0];

console.log('hello', author);
helper hello ipluserコマンドを再実行します.

$ helper hello ipluser
hello ipluser

ああ、やっと完成しましたが、プログラマーとしては、まだ十分ではありません.ユーザがauthorを入力していない場合、端末はユーザに情報を入力するように注意することを望んでいる.
ヒント
ヒント情報をhelper-helloファイルに追加します.

#!/usr/bin/env node

var program = require('commander');

program.usage('');

//     `helper hello -h` `helper hello --helper` ,        
program.on('--help', function() {
 console.log(' Examples:');
 console.log(' $ helper hello ipluser');
 console.log();
});

program.parse(process.argv);
(program.args.length < 1) && program.help(); //          ,  `help`        

const author = program.args[0];

console.log('hello', author);
helper helloまたはhelper hello -hのコマンドを実行すると、端末はヘルプ情報を表示します.

$ helper hello

 Usage: helper-hello 

 Options:

 -h, --help output usage information

 Examples:
 $ helper hello ipluser

$ helper hello -h

 Usage: helper-hello 

 Options:

 -h, --help output usage information

 Examples:
 $ helper hello ipluser

まとめ
ここでは、helperコマンドラインツールを作成し、helper helloコマンドを備えています.兴味を持ったばかりの友达は早く自分で実践して、自分でやってこそ本当の勉强になるので、本文がみんなに役に立つことを望んでいます.