如何在Grunt中禁用任务?
当使用grunt.loadNpmTasks
,一个咕噜的任务可以自动在命令行中使用。 它可能是有用的,但有时候,我希望这个任务是私有的,所以它可以在Grunt文件中使用,但不可用于命令行。
这是一个人为的例子。 如果我做 :
module.exports = function(grunt) { grunt.initConfig({ clean: { test: ['test'], release: ['release'] }, }); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.registerTask('build', 'Build the project.', function() { console.log("building project"); }); grunt.registerTask('release', ['clean:release', 'build']); };
…我可以使用下面的命令:
$ grunt release
但是,这个也是可用的,并且都是clean:release
和clean:test
将被执行:
$ grunt clean
我不要那个。 我想控制从命令行可以调用什么,因为如果用户直接调用某些任务或子任务,我可能没有预见到一些不良影响。
我想要注册一个新的clean
任务来取代主任务,然后在调用clean
(或根本不需要任何操作)时select要调用的内容,但由于无法调用原始的clean
任务,因此无法正常工作:
grunt.registerTask('clean', ['clean:release']);
使用grunt.task.renameTask
var ticks = +new Date(); var clean = 'clean-' + ticks; grunt.task.renameTask('clean', clean); grunt.registerTask('release', [clean + ':release', 'build']); grunt.config.set(clean, grunt.config.get('clean'));
如果要保留target
的configuration,则复制configuration很重要