【问题标题】:Grunt - Command Line Arguments, not workingGrunt - 命令行参数,不起作用
【发布时间】:2013-06-05 09:55:28
【问题描述】:

我在我的 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":"*"
    }
}

【问题讨论】:

标签: gruntjs command-line-arguments


【解决方案1】:

指定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

因此,切换到不同的选项名称可能是个好主意。

【讨论】:

  • 不知道为什么我很难在 grunt 文档中找到这个。非常感谢!
【解决方案2】:

值得一提的是,随着您要使用的命令行参数数量的增加,您与 grunt 内部使用的一些参数发生冲突。

我通过nopt-grunt 解决了这个问题

来自插件作者:

咕噜太棒了。 Grunt 对使用额外命令行选项的支持并不出色。当前的文档具有误导性,因为它们提供了使用布尔标志和带有值的选项的示例,但它们并没有告诉您它仅适用于单个选项。尝试并使用多个选项,事情很快就会崩溃。

绝对值得一试

【讨论】:

  • 此插件已被弃用,不再维护。 Grunt 已经纠正了使这个插件有用的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多