可以使用非选项参数运行的Grunt任务

时间:2014-05-01 18:49:17

标签: node.js gruntjs

我正在尝试使用api 相同的 编写一个与unix mv命令相同的grunt任务。

我希望能够使用grunt mv path/to/old/file path/to/new/file调用它。

我希望通过访问节点的process.argv能够做到这一点,但是当我使用这个API调用任务时,grunt尝试将path/to/old/file视为我正在尝试运行的另一个任务,抛出Warning: Task "path/to/old/file" not found. Use --force to continue.并退出的错误。

有没有办法做我想做的事情?

3 个答案:

答案 0 :(得分:1)

我认为您正在寻找--options参数http://gruntjs.com/frequently-asked-questions#options

因此,您可以使用grunt mv --from=path/to/old/file --to=path/to/new/file调用它。

答案 1 :(得分:1)

您可以通过将参数分隔为“:”来传递参数,例如

grunt mv:path/to/old/file:path/to/new/file

肯定不理想。在您的任务中,您可以使用this.args获取其值。见https://github.com/Grunt-generate/grunt-generate/blob/master/tasks/generate.js 举个例子。这是API文档:http://gruntjs.com/api/inside-tasks

答案 2 :(得分:0)

您应该使用de documentation中的process.argv

  

包含命令行参数的数组。第一个元素将   be' node',第二个元素将是JavaScript文件的名称。   下一个元素将是任何其他命令行参数。

在你的情况下:

档案: mv.js

console.log(process.argv[2]);
console.log(process.argv[3]);

然后如果你运行:节点mv.js路径/到/ old /文件路径/到/ new / file

这将输出:

path/to/old/file
path/to/new/file