gulp.watch在Windows上只运行一次

 心如止水向北飞2012_737 发布于 2023-01-31 08:32

我刚刚开始使用Gulp来改进我的工作流程.我目前有一个名为stylescompiles .lessfiles的任务,一个名为的任务watch,用于监视任何.less文件中的更改,然后运行styles任务.我gulpfile.js包含这段代码:

var gulp = require( 'gulp' ),
        less = require( 'gulp-less' ),
        autoprefixer = require( 'gulp-autoprefixer' ),
        minifycss = require( 'gulp-minify-css' ),
        jshint = require( 'gulp-jshint' ),
        uglify = require( 'gulp-uglify' ),
        imagemin = require( 'gulp-imagemin' ),
        rename = require( 'gulp-rename' ),
        clean = require( 'gulp-clean' ),
        concat = require( 'gulp-concat' ),
        notify = require( 'gulp-notify' ),
        cache = require( 'gulp-cache' ),
        header = require( 'gulp-header' ),
        footer = require( 'gulp-footer' );

// styles task
gulp.task( 'styles', function() {
    return gulp.src( 'src/styles/main.less' )
        .pipe( less({ paths: ['src/styles/'] }) )
        .pipe( autoprefixer( 'last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4' ) )
        .pipe( gulp.dest( 'dist/assets/css' ) )
        .pipe( rename( 'main.min.css' ) )
        .pipe( minifycss() )
        .pipe( gulp.dest( 'dist/assets/css' ) )
        .pipe( notify({ message: 'Styles task complete' }) );
} )

(...)

// watch task
gulp.task('watch', function() {

    // Watch .less files
    gulp.watch('src/styles/**/*.less', function(event) {
        console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
        gulp.run('styles');
    });
});

问题是,当我运行时gulp watch,它启动任务并styles在我第一次更改.less文件时运行任务.在第一次之后,我只记录了消息(File X was changed, running tasks...).难道我做错了什么?

感谢任何提示或帮助!

编辑

只需要一些信息:我正在使用Gulp 3.4.0运行Node.js 0.10.24.以下是提示输出的屏幕截图:

节点命令提示符运行gulp监视任务

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有