Gruntjs 咕噜递归拷贝

Gruntjs 咕噜递归拷贝,gruntjs,Gruntjs,我正在设置一个Grunt脚本,需要从a到B复制和重新组织图像目录。足够简单 目录结构: 组成部分 成分a js img 伊姆戈尔德拉 imgfolderB css 成分B js img 伊姆戈尔德拉 每个img目录都可以包含其他目录以及这些目录中的目录,以帮助组织图像 我想使用Grunt拍摄所有这些图像,并将它们放在一个目录下(assets/img): 资产 img 迪拉 伊姆戈尔德拉 imgfolderB 肮脏的 伊姆戈尔德拉 关于如何在grunt中做到这一

我正在设置一个Grunt脚本,需要从a到B复制和重新组织图像目录。足够简单

目录结构:

组成部分

  • 成分a
    • js
    • img
      • 伊姆戈尔德拉
      • imgfolderB
    • css
  • 成分B
    • js
    • img
      • 伊姆戈尔德拉
每个img目录都可以包含其他目录以及这些目录中的目录,以帮助组织图像

我想使用Grunt拍摄所有这些图像,并将它们放在一个目录下(assets/img):

资产

  • img
    • 迪拉
      • 伊姆戈尔德拉
      • imgfolderB
    • 肮脏的
      • 伊姆戈尔德拉

关于如何在grunt中做到这一点而不指定每个组件目录(它需要完全自动化)有什么想法吗


只需传递匹配的全局模式(例如,
**/img/**
),然后对返回的匹配文件值进行递归以进行复制。

知道有点晚了,但这应该可以完成此任务,请像这样使用“grunt contrib copy”

module.exports = function (grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    copy: {
      production: {
        files: [{
            expand: true,
            cwd: "componentA/img/imgfolderA/",
            src: ["*.*", "**/*.*"],
            dest: "./assets/img/dirA/",
          },
          {
            expand: true,
            cwd: "componentB/img/imgfolderB/",
            src: ["*.*", "**/*.*"],
            dest: "./assets/img/dirB/",
          },
        ]
      }
    }
  });

  // Production Build Tools
  grunt.loadNpmTasks('grunt-contrib-copy');

  // Default Production Build task(s).
  grunt.registerTask('default', ['copy']);
};
ps magic是在文件对象中,没有很好的文档记录,但是文档在这里,经过一两次阅读后就有了意义

grunt contrib复制设置:(底部的自述文件)

文件对象设置:


任务设置:

Ooh有趣,谢谢。不能说这是否解决了我的问题,因为我不确定如何使用API。我将尝试学习它,看看它是否有效!如果要查找grunt任务,请签出
grunt contrib copy
。您应该能够应用我在这里解释的相同逻辑。好的,到目前为止,我有这个:。它目前不工作(实际上不复制文件)。一半的问题是我不理解如何与grunt.file.copy交互,另一半的问题是我希望我没有正确使用grunt.file.expand。然而,这就是您可视化解决此问题的方式吗?使用
src:['*','**']
对我来说已经足够了。@AramKocharyan单星号
'*'
是否表示当前目录或当前目录中的所有文件?双星号
'**'
表示所有目录/文件以及递归性质?