0
因此,我設置了一個正在監視在Windows上運行的文件的glup watch任務。一切正常,但它只會記錄一次到控制檯。看起來手錶只運行一次。如果我調用cb(),那麼它運行在一個循環中。傳入的文件數組是單個文件而不是文件夾。Gulp Watch Logging Issue
var gulp = require('gulp'),
watch = require('gulp-watch'),
minCss = require('gulp-minify-css'),
autoprefixer = require('gulp-autoprefixer'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
pathConfig = require('./pathconfig.js'),
config = require(pathConfig.config),
fs = require('fs'),
gutil = require('gulp-util'),
buildCssImport = function (files) {
var file = '';
config.cssFilesWPath.forEach(function(value) {
if (value.charAt(0) != '!') {
file = file + '\n' + '@import url(\'/' + value.replace(pathConfig.path, '') + '\');';
}
});
fs.writeFileSync(pathConfig.path + config.cssDest + '/' + 'app.css', file);
},
buildJsImport = function() {
fs.writeFileSync(pathConfig.path + config.jsDest + '/' + 'app.js.json', JSON.stringify(config.jsFiles));
};
gulp.task('build-css', function(cb) {
buildCssImport(config.cssFilesWPath);
gulp.src(config.cssFilesWPath)
.pipe(concat('app.min.css'))
.pipe(autoprefixer())
.pipe(minCss())
.pipe(gulp.dest(pathConfig.path + config.cssDest))
.on("finish", function() {
gutil.log('built css');
});
});
gulp.task('build-js', function(cb) {
buildJsImport();
gulp.src(config.jsFilesWPath)
.pipe(concat('app.js'))
.pipe(gulp.dest(pathConfig.path + config.jsDest))
.pipe(uglify())
.pipe(concat('app.min.js'))
.pipe(gulp.dest(pathConfig.path + config.jsDest))
.on("finish", function() {
gutil.log('built js');
});
});
gulp.task('watch', function(cb) {
var cssFilesWPath = [],
jsFilesWPath = [];
config.cssFiles.forEach(function (cssFile) {
cssFilesWPath.push(pathConfig.path + cssFile);
});
config.jsFiles.forEach(function (jsFile) {
jsFilesWPath.push(pathConfig.path + jsFile);
});
config.cssFilesWPath = cssFilesWPath;
config.jsFilesWPath = jsFilesWPath;
gulp.watch(cssFilesWPath, ['build-css'])
gulp.watch(jsFilesWPath, ['build-js'])
});