问题描述
我正在尝试将index.html文件复制到多个文件夹。我一直在寻找堆栈溢出,几乎找到了我正在寻找的解决方案。在我的示例中,循环仅将index.html文件复制到folders数组的最后一个文件夹。我不知道我在忽略什么。有什么想法吗?
module.exports = function(grunt){
grunt.initConfig({
copy:{
files:{
flatten:true,expand: false,src: [
'scaffold/index.html',],dest: "dist/<%= grunt.option('folder') %>/",filter: 'isFile',force: true
}
}
})
function copytoFolders() {
var folders = ["300x600","300x250","336x280"],folder;
for (folder in folders)
{
grunt.option('folder',folders[folder]);
grunt.task.run('copy');
}
}
grunt.loadNpmtasks('grunt-contrib-copy-force');
grunt.registerTask('copyFol',copytoFolders)
}
解决方法
好吧,我通过看这篇文章解决了它: stack overflow post
因此基本上,现在它返回一个文件对象数组,并在调用默认任务时执行目标文件。
以下是适合我的脚本:
module.exports = function(grunt) {
function getFiles() {
var folders = ["300x600","300x250","336x280"];
var files = [];
for (var folder in folders) {
files.push({
flatten:true,expand: true,src: [
'scaffold/index.html',],dest: "dist/" + folders[folder] + "/",filter: 'isFile'
});
}
return files;
}
grunt.initConfig({
copy: {
core: {
files: getFiles()
}
}
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default',['copy:core']);
};