Node.js 可以使用非选项参数运行的Grunt任务
我试图用与unixmv命令相同的api编写一个grunt任务 我希望能够使用Node.js 可以使用非选项参数运行的Grunt任务,node.js,gruntjs,Node.js,Gruntjs,我试图用与unixmv命令相同的api编写一个grunt任务 我希望能够使用grunt mv path/to/old/file path/to/new/file来调用它 我希望能够通过访问node的process.argv来实现这一点,但是,当我使用此API调用任务时,grunt试图将path/to/old/file视为我试图运行的另一个任务,抛出了一个错误警告:找不到任务“path/to/old/file”。使用--force继续。并退出 有什么方法可以完成我想做的吗?我想您正在寻找--opt
grunt mv path/to/old/file path/to/new/file来调用它
我希望能够通过访问node的process.argv来实现这一点,但是,当我使用此API调用任务时,grunt试图将path/to/old/file
视为我试图运行的另一个任务,抛出了一个错误警告:找不到任务“path/to/old/file”。使用--force继续。
并退出
有什么方法可以完成我想做的吗?我想您正在寻找--options
参数
因此,您可以使用grunt mv--from=path/to/old/file--to=path/to/new/file
调用它,您应该使用from de documentation:
包含命令行参数的数组。第一个元素是
如果是“node”,则第二个元素将是JavaScript文件的名称。
接下来的元素将是任何其他命令行参数
就你而言:
文件:mv.js
console.log(process.argv[2]);
console.log(process.argv[3]);
然后,如果运行:node mv.js path/to/old/file path/to/new/file
这将输出:
path/to/old/file
path/to/new/file
通过使用“:”分隔任务,可以将参数传递给任务,例如
当然,这并不理想。在任务内部,您可以使用this.args
获取它们的值。看见
举个例子。下面是API文档:这是我当前的,也是显而易见的实现。我试图绕过对--from=和--to=的需求。哦,我明白了,我认为最明显的是使用grunt mv:path/to/old/file:path/to/new/file,如中所述。啊,这是一个好建议。冒号分隔的方法肯定会节省一些从--to=和--from=的输入,但如果可能的话,我仍然希望找到一种方法来模拟命令行mv
的api。如果我不使用Grunt,这将是可行的,但我使用Grunt,并且我希望将此任务保留在Grunt中。按建议调用Grunt时,无法通过Grunt的初始化。Grunt将path/to/old/file解释为一个任务,并抱怨找不到该名称的任务。看起来,如果我使用--force运行它,我可能能够进入任务并使用node的process.argv,但是我希望避免开发人员需要为此任务键入--force。
grunt mv:path/to/old/file:path/to/new/file