2016-10-04 10 views
0

私のプロジェクトでcommander.jsを使っています。コマンドのエイリアスを与えるときに奇妙な問題に直面しています。私はCommander.JS Examplenodejs commander.js "--help"に対して期待通りにエイリアスが動作しません

私は.command()メソッドで始まったので、私はgitのようなコマンドを作成するために探しています。上記のrepoをクローンして、pmの例でローカルに実行すると、helpオプションが期待通りに機能します。使用セクションでは 'pm'のみが使用され、 'install'コマンドには別名 'i'が '|'で区切られています。シンボル

使い方:午後[オプション] [コマンド]

コマンド:

インストール|私は[名] 1つ以上のパッケージ

他のオプションをインストール...

私自身のテストアプリケーションを実行すると、コマンドのエイリアスにテストアプリケーション名自体が追加され、次のような出力が得られます。

使い方:インデックス| R [オプション] [コマンド]

コマンド:

ランダムランダムコマンド

別名は 'r' の代わりにindexコマンドで表示されていることに注意してください'ランダム'コマンドの。 index.jsファイルにコマンドを追加すると、最後のエイリアスは実際に正しいコマンドで追加されるのではなく、Usage: index|<new alias>に追加されます。

私は何が間違っているのか理解できません。誰か助けてもらえますか? -hまたは--helpオプションを使用すると、正しい出力を得るにはどうすればよいですか?

index.js

#!/usr/bin/env node 
'use strict'; 
var program = require('commander'); 
program 
    .version('1.0.0') 
    .command('random', 'random command') 
    .alias('r') 
    .parse(process.argv); 

インデックスrandom.js

#!/usr/bin/env node 
'use strict'; 
var program = require('commander'); 
program 
    .option('-r, --random <random>', 'Random command option') 
    .parse(process.argv); 

Package.json

{ 
"name": "commander-test", 
"version": "1.0.0", 
"description": "Testing commander", 
"main": "index.js", 
"scripts": { 
"test": "echo \"Error: no test specified\" && exit 1" 
}, 
"author": "Raghuveer", 
"license": "UNLICENSED", 
"dependencies": { 
    "commander": "^2.9.0", 
    "graceful-readlink": "1.0.0" 
} 
} 

再現手順:

node index -h 

は、あなたがより多くの情報が必要な場合は私に知らせてください。

答えて

0

対応するサブコマンドファイルにサブコマンドのエイリアスを追加します。あなたの場合は、index-random.jsにこれを追加する必要があります。

#!/usr/bin/env node 
'use strict'; 
var program = require('commander'); 
program 
    .option('-r, --random <random>', 'Random command option') 
    .alias('r') 
    .parse(process.argv); 

次に起動します。 node index.js help random ヘルプはしかし、私も直面しています問題は、私が唯一のエイリアスでインデックスコマンドを呼び出す場合、何も起こらないだろうということですUsage: index-random|r

が表示されます。 (例えば、私がnode index rと呼んだ場合、出力は返されません)。

完全なコマンドではなく別名を呼び出すことができたら教えてください。

を更新しました。以下は2つのコマンドの出力です。

>node index.js help 

    Usage: index [options] [command] 

    Commands: 

    random  random command 
    help [cmd] display help for [cmd] 

    Options: 

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


>node index.js help random 

    Usage: index-random|r [options] 

    Options: 

    -h, --help    output usage information 
    -r, --random <random> Random command option 
+0

ありがとうございます。私はあなたから提案された変更を行ったが、それは仕事をしなかった。ノードインデックス-hを実行すると、 'random | r random command'ではなく' random random command'が表示されます。どの司令官のバージョンを使用していますか? – Raghuveer

+0

私のpackage.jsonファイルで '' commander ":"^2.9.0 "の設定も使用しました。私にとっても、 'node index.js help'はエイリアスを表示しません。しかし、私が 'node index.js help random'と呼んだとき、私は別名を見ることができました。私は2つのコマンドを呼び出すと、私が得た出力で以前の答えを編集しました。 –

関連する問題