Grunt - Возможно ли, чтобы задача выполнялась только один раз?

Существует определенная задача, которую я хочу запустить только один раз, а затем гарантировать, что она никогда не запускается снова. Кто-нибудь сделал это? Я смотрел на использование grunt.event.once(...) или попытался обнаружить папки или файлы с помощью сценария оболочки в postinstall, но оба пути оставляют задачу в файле gruntfile.js, который потенциально может быть вызван в любое время при перезаписи файлы.

На очень простом уровне он сделал бы что-то вроде этого:

grunt.registerTask('setup', [
 'mkdir' // run some setup tasks
]);

grunt.event.once('setup', function() {

 // some how do what 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? Я знаю, что это просто задача, в этом случае я просто хочу, чтобы она запускала ее один раз.

1 ответ

Существует несколько библиотек, которые позволяют вам обращаться к содержимому Gruntfile через API, чтобы вы могли использовать один из них для изменения setup задачи настройки после ее запуска в первый раз.

Там Gruntfile Editor и Gruntfile API

Хотя обе они не поддерживают полное удаление задачи, вы всегда можете изменить конфигурацию своих задач таким образом.

licensed under cc by-sa 3.0 with attribution.