我正在尝试使用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.
并退出的错误。
有没有办法做我想做的事情?
答案 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