我安装了一个新的ubuntu 18.04框,并尝试将gulp用于新项目,但是gulp.watch()遇到问题,无法监视更改。
gulpfile.js:
var gulp = require('gulp');
var sass = require('gulp-sass');
sass.compiler = require('node-sass');
gulp.task('sass', function () {
return gulp.src('./css/*.sass')
.pipe(sass().on('error', sass.logError))
.pipe(concat('main.css'))
.pipe(gulp.dest('./css/compiled'))
.pipe(browserSync.reload({stream:true}));
});
gulp.task('watch',function(){
gulp.watch('./css/*.sass', gulp.series('sass'));
gulp.watch('./css/*.sass',browserSync.reload);
})
gulp.task('watchAll', gulp.series('watch'));
文件夹结构:
-css
-compiled
main.css
all-pages.sass
-images
index.html
gulpfile.js
package.json
package-lock.json
$ node -v
v13.2.0
$ npm -v
6.13.1
$ gulp -v
CLI version: 2.2.0
Local version: 4.0.2
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
此gulpfile我可以在许多不同的项目中重复使用,并且通常在开箱即用的情况下工作,除了在新的Ubuntu安装上安装的该实例之外。我只是运行任务“ sass”,它就可以了。它会浏览sass文件,并将其编译为css并将其放入main.css,但手表无法正常工作,只是无法检测到我所做的任何更改。
我使用流浪汉+ VMBox创建了我的Ubuntu实例
任何想法?
这是因为我正在Windows && linux之间使用共享文件夹。只需将usePolling:true
添加到我的手表功能中即可。
gulp.watch('./styles/*.sass',{ usePolling: true }, gulp.series('sass'));