Проблема с gulp-useref для дублированного контента с несколькими html-файлами - PullRequest
0 голосов
/ 25 марта 2019

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

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

Page 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 объединить.min.js, а его содержимое будет в два раза.

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

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

1 Ответ

0 голосов
/ 01 апреля 2019

Если вы добавите 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'));
});
...