我想使用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
。