[英]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.