Сократите и скомпилируйте один файл, используя 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.
С другой стороны: если вы беспокоитесь о производительности, минимизация html редко рассматривается как незначительный выигрыш, особенно если ваш сервер имеет gzip
включен