运行grunt.file.copy会返回错误代码:ENOENT

时间:2015-01-05 17:52:54

标签: javascript gruntjs

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

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

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

  

警告:无法读取“src / *”文件(错误代码:ENOENT)。使用--force继续。

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

1 个答案:

答案 0 :(得分:1)

您提到您已使用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的默认任务。