Gulp 4 监视任务未检测到更改



>我正在尝试从 Gulp 版本 4 切换到 Gulp 版本 3,并且我一直遇到监视任务的问题,当跟踪的 SCSS 文件更改时,它不会检测到更改。我做了一个简单的手表函数示例,因为它更容易调试。

Ubuntu 17.10
Node v8.9.4
Npm 6.9.0
Gulp CLI version: 2.2.0
Gulp Local version: 4.0.2

我尝试完全删除gulp和gulp-cli并再次安装它,删除node_modules文件夹并从头开始创建package.json文件,但结果是一样的。"开始'看'..."仅此而已。

包.json

    {
      "name": "starter",
      "version": "1.0.0",
      "description": "",
      "scripts": {
        "test": "echo "Error: no test specified" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "gulp": "^4.0.2",
        "gulp-sass": "^4.0.2"
      }
    }

古尔普文件.js

const {src, dest, watch} = require('gulp');
const sass= require('gulp-sass');
function style() {
    return src('./scss/**/*.scss')
        .pipe(sass())
        .pipe(dest('./css'));
}
function watchTask() {
    watch('./scss/**/*.scss', style);
}
exports.style = style;
exports.watch = watchTask;

注: 样式任务工作正常,并将所有.scss文件从源移动到目标。

我真的很感激任何帮助,因为我的想法已经用完了。

gulp 手表在启动后检测更改,而不是在此运行和上次运行之间gulp watch 之间。

无论如何,您都需要告诉gulp watch运行第一个样式任务。

function watchTask() {
  watch('./scss/**/*.scss', {ignoreInitial: false}, style);
}

然后,每当您再次触摸某些scss文件时,它都会重新运行样式任务。

更新:

您使用的是 docker 还是网络映射磁盘上的文件?您可能需要打开{usePolling: true},如记录的那样"通过网络或其他非标准情况成功监视文件所需的"。

最新更新