gulp-useref не заменяет <-!build -> когда он находится в файле PHP - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь использовать gulp-useref.Все работает нормально, пока мое имя файла index.html, но если я переименую его в index.php (также изменяя gulp.src('app/*.html') на gulp.src('app/*.php') в gulpfile.js), он все равно создает минимизированные конкатенированные файлы CSS и JS, ноне заменяет блок <!-- build ><!-- endbuild > в файле назначения.

Исходные индексные файлы (и целевой файл index.php):

<!-- build:js main.min.js -->
<script src="js/test.js"></script>
<script src="js/test.js"></script>
<!-- endbuild -->

Целевой index.html (эточто я хочу, когда я переименую его в index.php тоже):

<script src="main.min.js"></script>

рабочий gulpfile.js:

gulp.task('useref', function(){
    return gulp.src('app/*.html')
        .pipe(useref())
        .pipe(gulpIf('*.js', uglify()))
        // Minifies only if it's a CSS file
        .pipe(gulpIf('*.css', cssnano()))
        .pipe(gulp.dest('dist'))
});

тот, который не заменяет блок <!-- build ><!-- endbuild -->:

gulp.task('useref', function(){
    return gulp.src('app/*.php')
        .pipe(useref())
        .pipe(gulpIf('*.js', uglify()))
        // Minifies only if it's a CSS file
        .pipe(gulpIf('*.css', cssnano()))
        .pipe(gulp.dest('dist'))
});

Что может вызвать эту проблему и как я могу быстро ее исправить?

1 Ответ

0 голосов
/ 29 мая 2018

Я заставил это работать, задача gulp.watch вызвала эту проблему.Я не выполнил задачу useref правильно, когда наблюдал за изменениями файла.

Когда это не сработало:

// Watch for file changes:
gulp.task('watch', ['sass', 'useref', 'copy'], function(){
    gulp.watch('app/scss/**/*.scss', ['sass']);

    // Reload the browser whenever PHP or JS files change:
    gulp.watch('app/js/**/*.js', ['copy']);
    gulp.watch('app/**/*.php', ['copy']);
    gulp.watch('app/.htaccess', ['copy']);
    // Other watchers
});

Когда оно внезапноначал работать:

// Watch for file changes:
gulp.task('watch', ['sass', 'copy'], function(){
    gulp.watch('app/scss/**/*.scss', ['sass', 'useref']);

    // Reload the browser whenever PHP or JS files change:
    gulp.watch('app/js/**/*.js', ['useref']);
    gulp.watch('app/**/*.php', ['copy']);
    gulp.watch('app/.htaccess', ['copy']);
    // Other watchers
});
...