Для того чтобы настроить gulp и file include таким образом, чтобы пересборка происходила только при изменении одного файла, вам потребуется использовать плагин gulp-changed.
Вот пример кода настройки gulp с file include и gulp-changed:
```javascript
const gulp = require('gulp');
const fileinclude = require('gulp-file-include');
const changed = require('gulp-changed');
const paths = {
src: 'src/*.html',
dest: 'dist'
}
function includeHTML() {
return gulp.src(paths.src)
.pipe(changed(paths.dest))
.pipe(fileinclude({
prefix: '@@',
basepath: '@file'
}))
.pipe(gulp.dest(paths.dest));
}
function watchFiles() {
gulp.watch('src/**/*.html', includeHTML);
}
gulp.task('default', gulp.series(includeHTML, watchFiles));
```
Здесь функция includeHTML сначала использует плагин gulp-changed, который сравнивает измененный файл со скомпилированным файлом в папке dist и если изменения обнаружены, то происходит компиляция только этого файла.
Функция watchFiles отслеживает изменения в файлах с расширением .html в папке src и запускает функцию includeHTML при их изменении.
Помните, что необходимо установить плагин gulp-changed через npm, используя команду `npm install gulp-changed --save-dev`.