有一项特殊任务我只想运行一次,然后保证它永远不会再运行。有没有人这样做过?我正在考虑使用grunt.event.once(...),或者尝试在postinstall上使用shell脚本检测文件夹或文件,但两种方式都会在gruntfile.js中留下任务,可以随时调用该任务覆盖文件。
在一个非常简单的层面上,它会做这样的事情:
grunt.registerTask('setup', [
'mkdir' // run some setup tasks
]);
grunt.event.once('setup', function() {
// some how do what's below here so it can't be done again
// so not available in config for reuse and possibly overwriting
// modified files
grunt.task.run([
'bowercopy:src_codeigniter'
]);
});
这在Grunt中甚至可能吗?我知道它只是一个任务转轮,在这种情况下我只想让它运行一次。
答案 0 :(得分:1)
有几个库允许您通过API访问Gruntfile
的内容,因此您可以在第一次运行后使用其中一个来更改setup
任务的配置。
Gruntfile Editor 和 Gruntfile API
虽然它们都不支持完全删除任务,但您始终可以通过这种方式修改任务配置。