[英]Gulp watch breaks production files
因此,我遇到了一個問題,即運行我的gulp watch任務會破壞我的構建。 僅當我編輯.scss
文件並且gulp檢測到更改時才會發生這種情況。
例如,樣式已正確地應用於我網站上的特定文檔。 我開始通過吞食來監視自己的資產。 我運行gulp
來調用默認任務(它將正確構建所有內容,連接我的資產等)
這不會破壞我的生產文件。 直到我編輯文件(並且gulp檢測到該文件並再次運行必要的任務)后,這種情況才會發生。
這是我的gulpfile
//Node dependencies
var gulp = require('gulp'),
minifyCSS = require('gulp-clean-css'),
minifyJS = require('gulp-uglify'),
rename = require('gulp-rename'),
sass = require('gulp-sass'),
pump = require('pump'),
sync = require('run-sequence');
//Sass transpilation task
gulp.task('sass', function(cb) {
pump([
gulp.src('app/scss/*.scss'),
sass(),
gulp.dest('app/css')
], cb);
});
//Uglify CSS task
gulp.task('ugCSS', function(cb) {
pump([
gulp.src('app/css/*.css'),
minifyCSS(),
rename({
suffix: ".min"
}),
gulp.dest('dist/css')
], cb);
});
//Uglify JS task
gulp.task('ugJS', function(cb) {
pump([
gulp.src('app/js/*.js'),
minifyJS(),
rename({
suffix: ".min"
}),
gulp.dest('dist/js')
], cb);
});
//Watch task
gulp.task('watch', function() {
return gulp.watch('app/scss/*.scss', ['default']);
});
//Default task to make sure everythings runs syncronously
gulp.task('default', function(callback) {
sync('sass', 'ugCSS', 'ugJS', 'watch', callback);
});
如果我說的話沒有道理,我將系統地列出我如何調用此問題。
長話短說,只有當我“主動”編輯.scss
文件時,我的樣式才會刪除,而gulp watch任務會調用必要的任務以將文件構建到生產文件夾中,以便相關文檔可以看到這些更改。
成為gulp的新手,並且遇到了類似的問題,我通過以下方法解決了這個問題: 如何依次依次運行Gulp任務 ,您可以嘗試以下操作:
//Sass transpilation task
gulp.task('sass', function() {
return gulp.src('app/scss/*.scss') // return solved my problem
.pipe(sass()/*.on('error', sass.logError)*/) // optional on error
.pipe(dest('app/css'));
});
//Uglify CSS task
gulp.task('ugCSS', function() {
return gulp.src('app/css/*.css')
.pipe(minifyCSS())
.pipe(rename({suffix: ".min"})
.pipe(dest('dist/css'));
});
//Uglify JS task
gulp.task('ugJS', function() {
return gulp.src('app/js/*.js')
.pipe(minifyJS())
.pipe(rename({suffix: ".min"})
.pipe(dest('dist/js'));
});
//Watch task
gulp.task('watch', function() {
return gulp.watch('app/scss/*.scss', ['default']);
});
//Default task to make sure everythings runs syncronously
gulp.task('default', function() {
sync('sass', 'ugCSS', 'ugJS');
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.