繁体   English   中英

Gulp 观察它运行的日志记录,但我的文件没有改变

[英]Gulp watch logging that it ran, but my files aren't changing

编辑:解决如下

这是我的 gulpfile

var gulp = require('gulp');
var sass = require('gulp-sass');
var minify = require('gulp-minify');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');

var allSassFiles = 'scss/**/*.scss';
var sassFile = gulp.src('./scss/style.scss');
var cssDest = '../wp-content/themes/Jupiter-child/uwkc_assets/css');

var sassify = function() {
  return sassFile.pipe(sourcemaps.init())
    .pipe(sass({outputStyle: 'compressed', onError: sass.logError}))
    .pipe(gulp.dest(cssDest + '/prod'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest(cssDest));
};

gulp.task('doSass', sassify);

gulp.task('watchSass', function(){
  return gulp.watch(allSassFiles, ['doSass']);
});

sass glob 是变量“allSassFiles”。 ■ 当我运行任务“doSass”时,一切都编译正常。 我的 css 更改显示在浏览器中。

然而,当我运行“watchSass”任务时,事情只会改变一次,然后进一步的变化不会反映在浏览器中。 这就像只运行一次“doSass”。

奇怪的是,在我的控制台中,我看到了 doSass 的开始和完成日志,好像一切都运行良好。 但是,我没有看到对我的 css 目标文件进行了任何更改。

我尝试了很多东西,混合了我返回的内容,更改了 glob 语法。 很多东西。 出于某种原因,我无法让这该死的事情发挥作用。

有人看到我可能遗漏的任何东西吗? 我有一种感觉,它与 gulp-sass 或 sourcemaps 返回的内容有关,但我对它们的了解不够,无法找出答案。

谢谢大家!

这是我想出来的:

显然,每次我在 watch 运行时运行 sassify 时,我都需要创建一个新的 gulp.src() 对象。 我也希望我正确使用这些术语。

我重新写了:

return sassFile.pipe(sourcemaps.init())

在 sassify 函数中:

return gulp.src('./scss/style.scss').pipe(sourcemaps.init())

这成功了。 对我来说, watch 会重新使用变量sassFile中引用的相同 src 对象,该对象不代表已更改的 scss 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM