Grunt Copy插件无法配置

时间:2018-07-06 05:19:09

标签: javascript gruntjs grunt-contrib-copy

我是grunt的新手,对于我的项目,我正在使用grunt-contrib-copy插件。我的文件夹结构是:

enter image description here

module.exports = function(grunt){

const sass = require('node-sass');
require('load-grunt-tasks')(grunt);

grunt.initConfig({
    sass: {
        options: {
        implementation: sass,
    }, 
      dist: {
        files: [{
          expand: true,
          cwd: 'sass',
          src: ['*.scss'],
          dest: 'assets/css',
          ext: '.css'
        }]
      }
    },

    cssmin: {
        target: {
          files: [{
            expand: true,
            cwd: 'assets/css',
            src: ['*.css', '!*.min.css'],
            dest: 'build/assets/css',
            ext: '.min.css'
          }]
        }
      },

      copy:{
          html:{
              files:[{
                  expand:true,
                  dot:true,
                  cwd:'components',
                  src:['**/*.html'],
                  dest:'build/'
              }]
          }
      }
  });



  grunt.registerTask('default', ['sass','cssmin','copy']);
}

我想将index.html和components文件夹复制到build文件夹,但是我无法对其进行配置。我能够复制index.html文件或仅复制组件文件夹,但无法复制两者。有人可以帮我吗这将有极大的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

有几种方法可以实现这一目标。

将您的copy任务配置为以下一项。您可能可能只需要遵循解决方案A

注意:解决方案A B 均达到相同的结果。 解决方案C 的结果略有不同:


解决方案A

使用一个名为html的{​​{3}},您可以执行以下操作:

copy:{
  html:{
    files:[{
      src:['components/**', 'index.html'],
      dest:'build/'
    }]
  }
}

注意:在读取src的第一项上方的'components/**'数组中,使用了target(即**部分)。这意味着包括components文件夹中的所有项目,并包括所有子文件夹,这些子文件夹在复制时会深一些级别。


解决方案B

或者,使用两个目标;一个名为html,另一个名为components,您可以这样做:

copy:{
  html:{
    files:[{
      src:'index.html',
      dest:'build/'
    }]
  },
  components:{
    files:[{
      src:'components/**',
      dest:'build/'
    }]
  }
}

这与解决方案A 非常相似,但是它使用两个目标而不是一个目标,这可能更合适,因为目标名称实际上表明了它们在复制什么。


解决方案C

但是,如果您实际上不希望将components文件夹复制到build,而是只希望复制components文件夹的内容,则可以执行此操作:

copy:{
  html:{
    files:[{
      src:'index.html',
      dest:'build/'
    }]
  },
  components:{
    files:[{
      expand:true,
      cwd: 'components',
      src:'**',
      dest:'build/'
    }]
  }
}

注意:有关其他信息,请参阅grunt文档的Globbing pattern部分: