运行 grunt.file.copy returns 错误代码:ENOENT

Running grunt.file.copy returns Error code: ENOENT

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

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

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

Warning: Unable to read "src/*" file (Error code: ENOENT). Use --force to continue.

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

你提到你已经使用了 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 它将 运行 默认任务只有 运行s copy:js.