【发布时间】:2017-09-01 09:31:11
【问题描述】:
有一个单页网站。它由 index.php 组成,其中包括许多部分(其他 PHP 文件)。每个部分都包含指向 JavaScript 文件的链接。
问题:是否可以生成单个缩小的 PHP 文件,该文件将具有指向单个缩小的 JS 文件的单个链接(类似于 https://www.npmjs.com/package/gulp-sass)?
【问题讨论】:
标签: javascript php gulp gulp-minify
有一个单页网站。它由 index.php 组成,其中包括许多部分(其他 PHP 文件)。每个部分都包含指向 JavaScript 文件的链接。
问题:是否可以生成单个缩小的 PHP 文件,该文件将具有指向单个缩小的 JS 文件的单个链接(类似于 https://www.npmjs.com/package/gulp-sass)?
【问题讨论】:
标签: javascript php gulp gulp-minify
并非开箱即用,但您可以使用 Jekyll、Harp 等静态网站生成器。
这可能需要为像液体这样的东西删除 php 模板,这样 Jekyll CLI 可以解释您的包含和一般页面结构,并生成可以通过 gulp 任务缩小的准备推送 html 文件。
附带说明:如果您关心性能,缩小 html 很少被视为收益是微不足道的,尤其是如果您的服务器启用了gzip。
【讨论】:
我自己设法解决了这个问题。只需 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,然后 minify 将结果放入单个 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:否决我的问题的人 - 你真的是了不起。
【讨论】: