将目录/文件从多个src文件夹复制到一个目标

时间:2014-05-06 09:51:10

标签: grunt-contrib-copy

我试图创建一个非常简单的复制任务,但似乎没有为我的用例制作grunt-copy: - (。

我需要的只是以下内容:

源目录结构:

vendor
  L subdir1
      L assets
          L subdir2
              L subdir3
                  L file1.js
              L file2.js
  L subdir4
      L subdir5
          L subdir6
              L file3.js 

配置:

src: [
   'vendor/subdir1/assets/**/*',
   'vendor/subdir4/**/*'
],
dest: 'build/assets/'

目标文件结构:

build
  L assets
      L subdir2
          L subdir3
              L file1.js
          L file2.js
      L subdir5
          L subdir6
              L file3.js

如您所见,我想保留目录结构,但省略了src中的basepath。通常这可以通过cwd来完成。但实际上对于这种情况我需要多个cwds。

听起来对我来说是一个公平的要求。真的没有简单的解决方案吗?

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

您可以使用更多以逗号分隔的文件' Gruntfile.js中的定义:

copy: {
    dist: {
        files: [
            {
                src: ['assets/**/*'],
                dest: 'build/assets/',
                cwd: 'vendor/subdir1'
            },
            {
                src: ['**/*'],
                dest: 'build/assets/',
                cwd: 'vendor/subdir4/'
            }]
    }
}

在Gruntfile中,您可以运行以下任务:

grunt.registerTask('build', [
    copy:dist
]);

然后运行任务grunt build