Проблема с gulp-useref при дублировании контента с несколькими файлами html

Когда я настраиваю useref (gulp v3) со многими файлами html, например:

Сначала я создаю html-страницу, а затем вторую и запускаю задачу gulp.

Страница html01.html

 <!-- build:js js/combined.min.js -->
    <script src="../../assets/script01.js"></script>
    <script src="../../assets/script02.js"></script>
 <!-- endbuild -->

Страница html02.html

 <!-- build:js js/combined.min.js -->
    <script src="../../assets/script01.js"></script>
    <script src="../../assets/script02.js"></script>
 <!-- endbuild -->

Здесь у нас один и тот же скрипт на многих html-страницах

gulp.task('UpdateCombineCssJs', function() {
    return gulp.src('html/*.html')
        .pipe(useref())
        .pipe(gulpif('*.js', uglify()))
        .pipe(gulpif('*.css', cssnano()))
        .pipe(gulp.dest('dist'));
});

Если мы запустим задачу только с html01.html, а затем с html02.html, то размер файла comb.min.js и его содержимое увеличатся в два раза.

если я добавлю html03.html с той же ссылкой, размером и тройным содержимым

Как я могу избежать дублирования контента, потому что цель состоит в том, чтобы оптимизировать этот файл: Combine.min.js? Есть особая настройка?


person oalex    schedule 25.03.2019    source источник


Ответы (1)


Если вы добавите gulp-changed в целевой каталог, это должно остановить перезапись или добавление файла.

const changed = require('gulp-changed');

gulp.task('UpdateCombineCssJs', function() {
    return gulp.src('html/*.html')
        .pipe(useref())
        .pipe(gulpif('*.js', uglify()))
        .pipe(gulpif('*.css', cssnano()))
        .pipe(changed('dist'))
        .pipe(gulp.dest('dist'));
});
person Zweihänder    schedule 01.04.2019