我想使用Grunt任务将目录复制到其他位置。我不希望在运行副本的默认任务中运行它,因此我正在使用以下代码为其注册一个名为“myTask”的新任务:

  grunt.registerTask('myTask', 'Make new dir and copy "src" there', function() {
    grunt.file.copy('src/*','../dest/');
  });

每当我运行myTask时,它就会告诉我:



我要从中复制的源目录是否缺少某种语法?

最佳答案

您提到您已经使用了copy任务,但是不想在default任务中包括此特定的副本...因此,我建议您在配置中使用多个目标,并仅指定要在default任务数组中执行的目标:

grunt.initConfig({
  copy: {
    js: {
      files: [{
        expand: true,
        src: ['path/to/js/*.js'],
        dest: 'dest/js'
      }]
    },
    otherstuff: {
      files: [{
        expand: true,
        src: ['src/**'],
        dest: 'dest/'
      }]
    }
  },
  // ...
});

// notice that in our default task we specify "copy:js"
grunt.registerTask('default', ['jshint', 'concat', /* etc, */ 'copy:js']);

现在,您可以将~$ grunt copy:otherstuff~$ grunt copy:js分开运行,当您仅运行~$ grunt时,它将运行默认任务,该任务仅运行copy:js

09-11 19:55
查看更多