web-dev-qa-db-ja.com

Grunt-コマンドライン引数、機能しない

Gruntスクリプトでコマンドラインオプションを使用しています: http://kurst.co.uk/transfer/Gruntfile.js

ただし、コマンドgrunt --vers:0.0.1オプションを取得しようとすると、常に「未定義」が返されます。

var version = grunt.option('vers') || ''; 

これを機能させるのを手伝ってくれませんか?

別の(CLI)コマンドを試しました:

grunt vers:asd
grunt -vers:asd
grunt vers=asd

使用するだけでなく:

grunt.option('-vers');
grunt.option('--vers');

しかし、今のところ運がありません。うまくいけば、私は単純なものが欠けています。

これは私のpackage.jsファイルです:

{
    "name": "",
    "version": "0.1.0",
    "description": "Kurst EventDispatcher / Docs Demo ",
    "devDependencies": {
        "grunt": "~0.4.1",
        "grunt-contrib-yuidoc": "*",
        "grunt-TypeScript": "~0.1.3",
        "uglify-js": "~2.3.5",
        "grunt-lib-contrib": "~0.6.0",
        "grunt-contrib-uglify":"*"
    }
}
20
user2386872

Gruntのコマンドライン引数 を指定するための適切な構文は次のとおりです。

_grunt --option1=myValue_

次に、gruntファイルで値にアクセスし、次のように出力できます。

console.log( grunt.option( "option1" ) );

また、おそらく_--vers_で問題が発生している別の理由は、バージョンを返すすでにうなり声のオプションがあるためです。

_★  grunt --vers
grunt-cli v0.1.7
grunt v0.4.1
_

したがって、別のオプション名に切り替えることをお勧めします。

38
go-oleg

使用するコマンドライン引数の量が増えると、willは、gruntが内部で使用するいくつかの引数との衝突に遭遇することに注意してください。

私はこの問題を回避しました nopt-grunt

プラグインの作者から:

グラントは素晴らしいです。追加のコマンドラインオプションを使用するためのGruntのサポートは素晴らしいものではありません。現在のドキュメントは、ブールフラグとオプションを値とともに使用する例を示しているという点で誤解を招きますが、単一のオプションでのみそのように機能することを示していません。複数のオプションを試して使用すると、物事はすぐに崩壊します。

それは間違いなくチェックする価値があります

3
Naruto Sempai