【问题标题】:Using Gulp to Minify and Auto Update a CSS File使用 Gulp 缩小和自动更新 CSS 文件
【发布时间】:2018-11-19 00:51:03
【问题描述】:

我有一个 Gulp 任务,它在一个文件夹中缩小我的 CSS,然后将其通过管道传输到另一个文件夹。

const gulp = require("gulp");
const cleanCSS = require("gulp-clean-css");

gulp.task("minify-css", () => {
  return (
    gulp
      .src("./css/**/*.css")
      .pipe(cleanCSS())
      .pipe(gulp.dest("minified"))
  );
});

gulp minify-css 命令完美运行。我不想在终端中不断输入该命令。

我希望下面的代码查看我的 CSS 文件,当它发生变化时,我希望 minify-css 任务运行并更新我的缩小文件,但它不起作用:

gulp.task("default", function(evt) {
  gulp.watch("./css/**/*.css", function(evt) {
    gulp.task("minify-css");
  });
});

关于为什么这不起作用的任何想法?提前谢谢!

【问题讨论】:

  • 我遵循了一个建议,将我的"default" 任务更改为"watch",然后添加了gulp.task('default', ['minify-css', 'watch']);,但是当我运行gulp default 时,我收到一条错误消息,提示“必须指定任务功能”跨度>
  • 看起来是 gulp 的版本问题。您可以尝试改用gulp.task('default', gulp.parallel('minify-css', watch'));。在这里阅读更多:fettblog.eu/gulp-4-parallel-and-series
  • 这似乎在我第一次运行命令时起作用。它缩小了文件,我得到了[19:50:48] Using gulpfile E:\GitHub\freeCodeCamp-Projects\personal-portfolio\gulpfile.js [19:50:48] Starting 'default'... [19:50:48] Starting 'minify-css'... [19:50:48] Starting 'watch'... [19:50:48] Finished 'minify-css' after 300 ms [19:51:05] Starting '<anonymous>'... 的返回但是如果我再次更改某些内容并保存文件,它不会更新我的缩小文件
  • 有人有什么想法可以帮助我吗?不幸的是,我无法修复它。提前致谢!

标签: javascript css gulp gulp-watch


【解决方案1】:

问题在于您在gulp.watch 回调函数中调用gulp.task('minify-css') 的区域。该代码实际上并没有调用 minify-css 任务,而是根据您在日志中指出的那样生成 anonymous 任务。相反,gulp.watch 应该调用一个在内部执行minify-css 作业的函数。

另一个问题可能是 gulp-4 中发生的语法变化。它们并不多,但可能会令人困惑。

我已经设法解决了这个问题并且它有效。下面是gulpfile.js 的更新代码:

const gulp = require("gulp");
const cleanCSS = require("gulp-clean-css");

function minifyCSS() {
  return (
    gulp
      .src("./css/*.css")
      .pipe(cleanCSS())
      .pipe(gulp.dest("minified"))
  );
}

gulp.task("minify-css", minifyCSS);

gulp.task("watch", () => {
  gulp.watch("./css/*.css", minifyCSS);
});

gulp.task('default', gulp.series('minify-css', 'watch'));

希望这会有所帮助。

【讨论】:

  • 这很完美!非常感谢您的所有帮助!我将您的解决方案添加到我的gulpfile.js 中,并且效果很好。每次我更新我的正常 CSS 文件时,minify 过程都会正常运行,minify 会正确运行!再次,非常感谢!
猜你喜欢
  • 2011-05-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
相关资源
最近更新 更多