srd*_*jan 3 javascript gulp gulp-watch gulp-4
我正在尝试从 Gulp 版本 3 切换到 Gulp 版本 4,但我经常遇到监视任务的问题,当跟踪的 SCSS 文件更改时,它不会检测到更改。我做了一个 watch 函数的简单例子,因为它更容易调试。
Ubuntu 17.10
Node v8.9.4
Npm 6.9.0
Gulp CLI version: 2.2.0
Gulp Local version: 4.0.2
Run Code Online (Sandbox Code Playgroud)
我尝试完全删除 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"
}
}
Run Code Online (Sandbox Code Playgroud)
gulpfile.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;
Run Code Online (Sandbox Code Playgroud)
注意:样式任务工作正常,并将所有.scss文件从源移动到目标。
我真的很感激任何帮助,因为我的想法已经用完了。
gulp watch 在启动后检测更改,而不是在本次运行和上次运行gulp watch.
无论如何,您都需要告诉 gulp watch 运行第一个样式任务。
function watchTask() {
watch('./scss/**/*.scss', {ignoreInitial: false}, style);
}
Run Code Online (Sandbox Code Playgroud)
然后,每当您再次触摸某个 scss 文件时,它将重新运行样式任务。
更新:
您使用的是 docker 上的文件还是网络映射磁盘上的文件?您可能需要{usePolling: true}按照“通过网络或其他非标准情况成功查看文件所需”的文档打开。
| 归档时间: |
|
| 查看次数: |
2511 次 |
| 最近记录: |