可以复制'默认文件的Grunt任务'到目的地目录?

时间:2014-02-05 03:25:52

标签: gruntjs

有谁知道我如何创建一个能够复制已发布的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任务文件中执行此操作吗?

2 个答案:

答案 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"));