使用Gulp缩小并编译单个文件

时间:2017-09-01 09:31:12

标签: javascript php gulp gulp-minify

有一个1页的网页。它由index.php组成,其中包含许多部分(其他PHP文件)。每个部分都包含指向JavaScript文件的链接。

问题:是否可以生成一个缩小的PHP文件,该文件只有一个指向单个缩小的JS文件的链接(类似于https://www.npmjs.com/package/gulp-sass)?

2 个答案:

答案 0 :(得分:1)

不是开箱即用,但您可以使用静态网站生成器,如Jekyll,Harp。

这可能需要为像液体这样的东西删除php模板,这样Jekyll CLI就可以解释你的包含和一般页面结构,并生成可以通过gulp任务缩小的准备推送的html文件。

Jekyll

Harpjs

gulp-htmlmin

旁注:如果您担心性能,很少会看到缩小html,因为收益可以保证,特别是如果您的服务器启用了gzip

答案 1 :(得分:1)

我自己设法解决了这个问题。只需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:对我的问题进行投票的人 - 你真的惊人的