Сократите и скомпилируйте один файл, используя Gulp

Есть 1-страничный сайт. Это состоит из index.php это включает в себя многочисленные разделы (другие файлы PHP). Каждый раздел содержит ссылки на файлы JavaScript.


Вопросы: возможно ли сгенерировать один минимизированный PHP-файл, который будет иметь одну ссылку на один минимизированный JS-файл (что-то похожее на https://www.npmjs.com/package/gulp-sass)?

2 ответа

Решение

Мне удалось решить эту проблему самостоятельно. Добиться желаемого результата можно всего двумя инструментами:

С concat я смог объединить все файлы *.js в logic.js как это:

gulp.task('scripts', function () {
    return gulp.src('src/**/*.js')
        .pipe(concat('logic.js'))
        .pipe(uglify())
        .pipe(gulp.dest('dist/js'));
});

С помощью ghfi я смог включить все включенные PHP, а затем минимизировать результат в один index.php:

gulp.task('php', function () {
    gulp.src('src/index.php')
        .pipe(gulpHandlebarsFileInclude())
        .pipe(htmlmin({
            collapseWhitespace: true
        }))
        .pipe(gulp.dest('dist'));
});

Пришлось включить дочерние PHP-файлы, кроме родительского, вот так:

{{ fileInclude 'src/foo.php' }}

PS: человек, который проголосовал против моего вопроса - вы действительно удивительны.

Не из коробки, но вы можете использовать статические генераторы сайтов, такие как Jekyll, Harp.

Это может потребовать удаления шаблонов php для чего-то вроде жидкости, и таким образом Jekyll CLI может интерпретировать ваши включения и общую структуру страницы и генерировать готовые к отправке html-файлы, которые могут быть уменьшены с помощью задачи gulp.

Джекил

Harpjs

Глоток-htmlmin

С другой стороны: если вы беспокоитесь о производительности, минимизация html редко рассматривается как незначительный выигрыш, особенно если ваш сервер имеет gzip включен

Другие вопросы по тегам