Запуск задания только для измененного файла
У меня есть грубая задача, которая переносит машинописные файлы в javascript. На охоте я передаю все имеющиеся у меня.ts файлы. Затем я хотел бы настроить grunt для просмотра файлов.ts, но переносить ТОЛЬКО файл.ts, который был изменен.
После поиска в Интернете я нашел следующую опцию:
Задача Grunt ts:
ts: {
all: {
src: ['scripts/**/*.ts'],
reference: 'scripts/_references.ts'
}
},
Это самая главная задача, я потом слушаю часы:
grunt.event.on('watch', function (action, filepath, target) {
switch (target) {
case 'ts':
{
grunt.config(['ts.all.src'], filepath);
grunt.config('watch.ts.tasks', 'ts');
break;
}
}
Дело в том, что задача выполняется, но файлы, которые я обновляю до переменной ts.all.sec, остаются такими же, как и на grunt serve, и задача снова переносит все файлы.
Спасибо!
2 ответа
но переносите ТОЛЬКО файл.ts, который был изменен.
grunt-ts может сделать это, если вы не используете reference.ts (потому что в противном случае компилятор машинописного текста прошел бы по дереву и скомпилировал бы все ссылочные файлы независимо), и не использовал --out
(у вас все хорошо... вы не используете его) и вместо этого используйте внешние модули. Подробнее: ( https://github.com/grunt-ts/grunt-ts)
Вы ищете плагин, который называется grunt-newer. Это именно то, что вам нужно.