有谁知道我如何创建一个能够复制已发布的grunt任务中保存的文件的自定义Grunt任务?
例如任务:
node_modules/grunt-foo/tasks/foo.js
node_modules/grunt-foo/tasks/support/foo-boilerplate.txt
我的Gruntfile中的任务
foo: {
dest: "target/foo"
}
当任务运行时,我希望“foo-boilerplate.txt”改为“target / foo /".
target/foo/foo-boilerplate.txt
任务中会有更多的事情发生,所以我不想暗示我正在做的就是复制样板代码。它只是任务中的一个用例。
有人能举例说明我如何在我的foo.js任务文件中执行此操作吗?
答案 0 :(得分:1)
所以,你想把一些文件复制到某个目的地,对吗?
首先使用grunt-contrib-copy定义复制操作:
copy: {
boilercode: {
src: ['node_modules/grunt-foo/tasks/support/foo-boilerplate.txt'],
dest: 'target/foo',
},
},
然后你希望你的foo任务执行许多其他任务,包括复制操作:
grunt.registerTask('foo', ['copy:boilercode', 'anothersupertask', 'yetanothertask']);
......你现在所要做的就是在其他任务中完成一些事情。
grunt. registerMultiTask('anothersupertask', 'super!', function(){})
我错过了什么吗? (我不知道你所谓的“已公布的咕噜声任务”)
供参考:
答案 1 :(得分:1)
我找到了解决方案。在我的多任务中,我使用__dirname来引用任务所在的目录。
var fileToCopy = path.join(__dirname, "support", "foo-boilerplate.txt");
file.copy(fileToCopy, path.join(target, "foo-boilerplate.txt"));