Аргументы командной строки Grunt - не работают
Я использую параметры командной строки в моем grunt script: http://kurst.co.uk/transfer/Gruntfile.js
Однако команда grunt --vers:0.0.1
всегда возвращает 'undefined', когда я пытаюсь получить эту опцию:
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":"*"
}
}
Ответы
Ответ 1
Правильный синтаксис для указания аргумента командной строки в Grunt:
grunt --option1=myValue
Затем в файле grunt вы можете получить доступ к значению и распечатать его следующим образом:
console.log( grunt.option( "option1" ) );
Кроме того, еще одна причина, по которой у вас, вероятно, проблемы с --vers
, заключается в том, что его уже включен параметр grunt, который возвращает версию:
★ grunt --vers
grunt-cli v0.1.7
grunt v0.4.1
Поэтому было бы неплохо перейти на другое имя опции.
Ответ 2
Следует отметить, что по мере увеличения количества аргументов командной строки, которые вы хотите использовать, вы столкнетесь с конфликтами с некоторыми аргументами, которые используют grunt внутри.
У меня возникла проблема с nopt-grunt
От автора плагина:
Грунт потрясающий. Поддержка Grunt для использования дополнительных параметров командной строки не является удивительной. Текущая документация вводит в заблуждение в том, что они приводят примеры использования логических флагов и опций со значениями, но они не говорят вам, что они работают только с одной опцией. Попробуйте использовать более одного варианта, и все быстро развалится.
Это определенно стоит проверить