我在我的grunt脚本中使用命令行选项: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":"*"
}
}
答案 0 :(得分:38)
指定command line argument in Grunt的正确语法是:
grunt --option1=myValue
然后,在grunt文件中,您可以访问该值并按以下方式打印:
console.log( grunt.option( "option1" ) );
此外,您可能遇到--vers
问题的另一个原因是因为它已经是一个返回版本的grunt选项:
★ grunt --vers
grunt-cli v0.1.7
grunt v0.4.1
因此,切换到不同的选项名称可能是个好主意。
答案 1 :(得分:3)
值得一提的是,随着您要使用的命令行参数的数量增加,将与grunt内部使用的某些参数发生冲突。
解决了这个问题来自插件作者:
Grunt太棒了。 Grunt对使用其他命令行选项的支持并不令人敬畏。当前的文档具有误导性,因为它们给出了使用布尔标志和带有值的选项的示例,但是它们并没有告诉您它只能使用单个选项。尝试并使用多个选项,事情很快就会崩溃。
绝对值得一试