如何在Gulp4中同时观看sass和javascript
我正在尝试将我的sass转换为压缩css,将javascript转换为uglifiedjs。和如何在Gulp4中同时观看sass和javascript,javascript,gulp,Javascript,Gulp,我正在尝试将我的sass转换为压缩css,将javascript转换为uglifiedjs。和观察scss和js的变化 我的代码正在工作,但当我试图保存一个js文件时,它进入了一个不可阻挡的循环 这是我的密码: var gulp = require('gulp'); var sass = require('gulp-sass'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); gulp
观察
scss和js的变化
我的代码正在工作,但当我试图保存一个js文件时,它进入了一个不可阻挡的循环
这是我的密码:
var gulp = require('gulp');
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
gulp.task('sass', function(done){
gulp.src('public/sass/**/*.scss')
.pipe(sass({outputStyle: 'compressed'})) // Using gulp-sass
.pipe(gulp.dest('public/stylesheets'))
done();
});
gulp.task('scripts', function(done){
gulp.src('public/javascripts/**/*.js')
.pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(gulp.dest('public/javascripts'))
done();
});
gulp.task('watch', function(){
//I made .scss and .js into an array so they will both be watched
gulp.watch(['public/sass/**/*.scss', 'public/javascripts/**/*.js' ], gulp.series('sass', 'scripts', function(done) {
done();
}))
})
现在,当我运行gulpwatch
时,它正在工作,但当我保存一个js文件时,我进入了一个保存循环,它不断地保存
我已使SCS使用此代码工作
gulp.task('watch', function(){
gulp.watch('public/sass/**/*.scss', gulp.series('sass', 'scripts', function(done) {
done();
}))
})
但我不知道如何才能使.js文件被监视
我在谷歌上搜索可能的答案,但只找到了旧版本的解决方案。有没有办法让我用gulp4做这个
- 我也试着吞下parallel,但它仍然循环
请帮忙。谢谢我这样做解决了这个问题:
gulp.task('watch', function(){
//I added the src folder instead of the glob **(two asterisk)
gulp.watch(['public/sass/**/*.scss', 'public/javascripts/src/*.js'], gulp.series('sass', 'scripts', function(done) {
done();
}))
})
我不知道为什么会发生这种情况,但它现在正在工作您的原始代码:
gulp.task('watch', function(){
//I made .scss and .js into an array so they will both be watched
gulp.watch(['public/sass/**/*.scss', 'public/javascripts/**/*.js' ], gulp.series('sass', 'scripts', function(done) {
done();
}))
})
应该是
gulp.task('watch', function(done){
// added done above too
gulp.watch('public/sass/**/*.scss', gulp.series('sass') )
gulp.watch('public/javascripts/**/*.js', gulp.series('scripts') )
done();
})
当修改scss或js文件时,您的代码会同时触发“sass”和
“脚本”
任务,这是一种浪费(例如,'sass'
任务将在js文件被更改时启动,但实际上不会对该js文件执行任何操作,但将不必要地运行sass重新编译,尽管没有更改scss文件)。谢谢你,我是gulp新手,我看到的所有教程都非常难以理解。