Gulp Watch记录问题

时间:2017-02-07 17:35:38

标签: javascript gulp gulp-watch

所以我设置了一个正在观看在Windows上运行文件的glup watch任务。一切正常但它只会记录一次到控制台。手表似乎只运行一次。如果我调用cb()然后它在循环中运行。传入的文件数组是单个文件而不是文件夹。

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'])
});

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,因为它位于已安装的Windows网络位置。 Gulp Version 4假设要修复此问题,但该错误仍然存​​在。 https://github.com/gulpjs/gulp/issues/1116

相关问题