【发布时间】:2021-02-23 08:11:11
【问题描述】:
我有一个从 sass 文件构建 css 文件的 gulp 任务,如下所示:
gulp.task("sass", () => {
return (
gulp.src([
src_assets_folder + "sass/*.scss"
], {
since: gulp.lastRun("sass"),
})
.pipe(debug({title: "sass-debug:"}))
.pipe(sourcemaps.init())
.pipe(plumber({errorHandler: onError}))
.pipe(dependents())
.pipe(sass({ fiber: Fiber }))
.pipe(autoprefixer())
.pipe(minifyCss())
.pipe(sourcemaps.write("."))
.pipe(gulp.dest(dist_folder))
.pipe(browserSync.reload({ stream: true }))
);
});
gulp.watch([src_assets_folder + 'sass/**/*.scss'], gulp.series("sass"));
我正在构建的 sass 文件是直接在 sass 文件夹下找到的文件,而不是 sass 子文件夹中的所有文件,但我的观察者递归地在 sass 文件夹中的所有文件上。
我遇到的问题是,当 Browsersync 启动时,然后我更新了一个在 sass 文件夹下没有立即找到的 sass 文件,Browsersync 没有检测到任何更改,但是当我更新一个找到的 sass 文件时在 sass 文件夹下,Browsersync 会立即检测到更改。
我该如何解决?
【问题讨论】:
-
我有点困惑 - 你的
sass/*.scss文件是 @import 还是 @use 所有在更深处找到的 sass 文件? -
@Mark 没错,我的
sass/*.scss只包含子文件夹中的 sass 文件,它们实际上不包含任何 sass 代码。 -
这些包含的文件都是部分文件,所以以下划线开头?
-
@Mark 不,他们没有,但它们都在子文件夹中。