【问题标题】:Minify and compile single file using Gulp使用 Gulp 压缩和编译单个文件
【发布时间】:2017-09-01 09:31:11
【问题描述】:

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


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

【问题讨论】:

    标签: javascript php gulp gulp-minify


    【解决方案1】:

    并非开箱即用,但您可以使用 Jekyll、Harp 等静态网站生成器。

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

    Jekyll

    Harpjs

    gulp-htmlmin

    附带说明:如果您关心性能,缩小 html 很少被视为收益是微不足道的,尤其是如果您的服务器启用了gzip

    【讨论】:

      【解决方案2】:

      我自己设法解决了这个问题。只需 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:否决我的问题的人 - 你真的是了不起

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-22
        • 1970-01-01
        • 2017-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多