0

我正在尝试创建一个非常简单的复制任务,但似乎 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 中的基本路径。通常这可以用 cwd 来完成。但实际上对于这种情况,我需要多个 cwd。

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

感谢帮助,

4

1 回答 1

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

于 2014-06-26T07:19:17.797 回答