Gruntjs Grunt副本需要关于如何简化任务的建议

Gruntjs Grunt副本需要关于如何简化任务的建议,gruntjs,yeoman,grunt-contrib-copy,Gruntjs,Yeoman,Grunt Contrib Copy,我正在Gruntfile中使用Grunt复制任务。该项目由约曼创建 我正在寻找关于如何简化任务定义的建议。您会注意到,对于每组文件,expand和dest字段是相同的。有什么方法可以简化这一点吗?我可以使用选项吗 这是我的任务 copy: { componentsToTmp: { files: [ { expand: true, cwd: '<%= yeoman.components %>/angular', d

我正在Gruntfile中使用Grunt复制任务。该项目由约曼创建

我正在寻找关于如何简化任务定义的建议。您会注意到,对于每组文件,expand和dest字段是相同的。有什么方法可以简化这一点吗?我可以使用选项吗

这是我的任务

copy: {
  componentsToTmp: {
    files: [
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-bootstrap',
        dest: '<%= yeoman.tmp %>/js',
        src: ['ui-bootstrap-tpls.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-cookies',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-cookies.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-l10n/build',
        dest: '<%= yeoman.tmp %>/js',
        src: ['l10n.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-local-storage',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-local-storage.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-resource',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-resource.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-sanitize',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-sanitize.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angular-ui/build',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-ui.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/angularjs-gravatardirective/src',
        dest: '<%= yeoman.tmp %>/js',
        src: ['md5-service.min.js', 'gravatar-directive.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/bootstrap/bootstrap/js',
        dest: '<%= yeoman.tmp %>/js',
        src: ['bootstrap.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/jquery',
        dest: '<%= yeoman.tmp %>/js',
        src: ['jquery.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/jquery-ui/ui/minified',
        dest: '<%= yeoman.tmp %>/js',
        src: ['jquery-ui.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/momentjs/min',
        dest: '<%= yeoman.tmp %>/js',
        src: ['moment.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/qrcode',
        dest: '<%= yeoman.tmp %>/js',
        src: ['qrcode.min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.components %>/underscore',
        dest: '<%= yeoman.tmp %>/js',
        src: ['underscore-min.js']
      },
      {
        expand: true,
        cwd: '<%= yeoman.app %>/angular-local-storage-obscure',
        dest: '<%= yeoman.tmp %>/js',
        src: ['angular-local-storage-obscure.js']
      }
    ]
  }
}
复制:{
组件STOTMP:{
档案:[
{
是的,
cwd:“/角度”,
目的地:'/js',
src:['angular.min.js']
},
{
是的,
cwd:“/角度引导”,
目的地:'/js',
src:['ui-bootstrap-tpls.min.js']
},
{
是的,
cwd:“/cookies”,
目的地:'/js',
src:['angular-cookies.min.js']
},
{
是的,
cwd:“/angular-l10n/build”,
目的地:'/js',
src:['l10n.min.js']
},
{
是的,
cwd:“/angular local storage”,
目的地:'/js',
src:['angular-local-storage.min.js']
},
{
是的,
cwd:“/角度资源”,
目的地:'/js',
src:['angular-resource.min.js']
},
{
是的,
cwd:“/angular sanitize”,
目的地:'/js',
src:['angular-sanitize.min.js']
},
{
是的,
cwd:“/ui/build”,
目的地:'/js',
src:['angular-ui.min.js']
},
{
是的,
cwd:“/angularjs gravatardirective/src”,
目的地:'/js',
src:['md5-service.min.js','gravatar directive.min.js']
},
{
是的,
cwd:“/bootstrap/bootstrap/js”,
目的地:'/js',
src:['bootstrap.min.js']
},
{
是的,
cwd:“/jquery”,
目的地:'/js',
src:['jquery.min.js']
},
{
是的,
cwd:“/jquery ui/ui/minified”,
目的地:'/js',
src:['jquery-ui.min.js']
},
{
是的,
cwd:“/momentjs/min”,
目的地:'/js',
src:['moment.min.js']
},
{
是的,
cwd:“/qrcode”,
目的地:'/js',
src:['qrcode.min.js']
},
{
是的,
cwd:“/下划线”,
目的地:'/js',
src:['下划线-min.js']
},
{
是的,
cwd:“/角度本地存储”,
目的地:'/js',
src:['angular-local-storage-undersome.js']
}
]
}
}
像这样的东西

copy: {
  components: {
    files: [{
      src: [
        '<%= yeoman.app %>/angular-local-storage-obscure/angular-local-storage-obscure.js',
        '<%= yeoman.components %>/underscore/underscore-min.js',
        '<%= yeoman.components %>/qrcode/qrcode.min.js',
        '<%= yeoman.components %>/momentjs/min/moment.min.js',
        '<%= yeoman.components %>/jquery-ui/ui/minified/jquery-ui.min.js',
        '<%= yeoman.components %>/jquery/jquery.min.js',
        '<%= yeoman.components %>/bootstrap/bootstrap/js/bootstrap.min.js', // etc
      ],
      dest: '<%= yeoman.tmp %>/js',
      expand: true,
      flatten: true,
      filter: 'isFile'
    }]
  }
}
复制:{
组成部分:{
档案:[{
src:[
“/angular local storage Underse/angular local storage Underse.js”,
“/下划线/下划线-min.js”,
“/qrcode/qrcode.min.js”,
“/momentjs/min/moment.min.js”,
“/jquery ui/ui/minified/jquery ui.min.js”,
“/jquery/jquery.min.js”,
“/bootstrap/bootstrap/js/bootstrap.min.js”、//等
],
目的地:'/js',
是的,
扁平化:是的,
筛选器:“isFile”
}]
}
}