【问题标题】:How can I gzip a uglify js with Gulp without generating two file in dist folder如何在不在 dist 文件夹中生成两个文件的情况下使用 Gulp 压缩 uglify js
【发布时间】:2017-10-12 17:15:45
【问题描述】:

我是 Gulp 的新手。

我想知道如何使用 Gulp 对静态网站中的所有 js 文件进行 concat、uglify 和 gzip。

我有一个这样的任务,但我只想在 dist 文件夹中包含 .gz 文件而不是 combine.js

gulp.task("concat-js", function () {
return gulp.src("./src/js/*.js")
    .pipe(concat("combined.min.js"))
    .pipe(uglify())
    .pipe(gzip())
    .pipe(gulp.dest("./build/js"));
});

更新

我鼓励您阅读 cmets。就我而言,问题是由于 gulp-useref 使用不当引起的,因为在构建过程结束时生成了文件。可能是菜鸟问题,但希望可以帮助任何人。

提前谢谢...

【问题讨论】:

  • 当您可以让您的服务器执行 gzip 时,为什么要压缩它们?
  • 我将使用 S3 + Cloud Front 来服务我的网站

标签: javascript gulp gulp-uglify gulp-concat


【解决方案1】:

这应该可行。只需将 .min 文件存储在临时文件夹中。如果需要,您可以稍后将其删除。

gulp.task("concat-js", function () {
  return gulp.src("./src/js/*.js")
   .pipe(concat("combined.min.js"))

   .pipe(gulp.dest('./temp'))

   .pipe(uglify())
   .pipe(gzip())
   .pipe(gulp.dest("./build/js"));
});

最终文件将是 build/js 中唯一的“combined.min.js.gz”。如果您不喜欢该名称,可以将其重命名为 gulp-rename

【讨论】:

  • 感谢您的回答,但我仍然看到生成文件夹中生成的两个文件
  • 嗯,我跑了几次来验证。您是否首先删除了构建文件夹以重新开始?
  • 看起来 uglify() 正在 build/js 文件夹中创建附加文件。因为我在 temp 文件夹中看到了 combined.js(没有 uglify 文件)和 build/js combine.min.js(uglify 文件)
  • 我在 temp 文件夹中得到一个文件 (combined.min.css),在 build/js 文件夹中得到一个文件 (combined.min.css.gz)。在运行此之前,您确实先删除了这两个文件夹吗?所以那些不是以前的旧文件吗?我之所以这么说是因为它对我来说完美无缺。
  • 我总是在运行构建之前删除该文件夹。我只是发现它适用于 css 文件,但不适用于 js 文件。我认为对您有用,因为您使用的是 css 文件,您可以尝试使用 js 文件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多