Javascript Can';不要让gulp watch在假定监视的文件夹中的文件更改时触发构建函数

Javascript Can';不要让gulp watch在假定监视的文件夹中的文件更改时触发构建函数,javascript,build,gulp,frontend,gulp-watch,Javascript,Build,Gulp,Frontend,Gulp Watch,我已经尝试了几种方法让gulp观看一个文件夹中的文件,以便在文件更改时重建,并阻止我手动执行此操作 我敢肯定,在grunt中,只需在构建任务数组中添加一个监视任务,就可以完成初始构建,在开发会话期间保持监视打开以侦听更改 我尝试过这个,它取自-我删除了批处理调用,因为我希望在每个事件上触发构建 gulp.task('watch', function () { watch('src/**/*.js', function (events, done) { gulp.start

我已经尝试了几种方法让gulp观看一个文件夹中的文件,以便在文件更改时重建,并阻止我手动执行此操作

我敢肯定,在grunt中,只需在构建任务数组中添加一个监视任务,就可以完成初始构建,在开发会话期间保持监视打开以侦听更改

我尝试过这个,它取自-我删除了
批处理
调用,因为我希望在每个事件上触发构建

gulp.task('watch', function () {
    watch('src/**/*.js', function (events, done) {
        gulp.start('build', done);
    });
});
对gulp watch的调用起作用,并且它似乎正在监视,但我对文件夹中的文件进行更改时,就会显示此错误

我的构建功能可以工作-到目前为止,我还没有那么高兴地手动触发它

/Users/tonileigh/node_modules/gulp/node_modules/orchestrator/index.js:89
                    throw new Error('pass strings or arrays of strings');
                          ^
Error: pass strings or arrays of strings
    at Gulp.Orchestrator.start (/Users/tonileigh/node_modules/gulp/node_modules/orchestrator/index.js:89:12)
    at /Users/tonileigh/development/shadowcat/gulpfile.js:26:14
    at write (/Users/tonileigh/node_modules/gulp-watch/index.js:123:9)
    at /Users/tonileigh/node_modules/gulp-watch/node_modules/vinyl-file/index.js:52:4
    at /Users/tonileigh/node_modules/gulp-watch/node_modules/vinyl-file/node_modules/graceful-fs/graceful-fs.js:76:16
    at fs.js:334:14
    at /Users/tonileigh/node_modules/gulp-watch/node_modules/vinyl-file/node_modules/graceful-fs/graceful-fs.js:42:10
    at /Users/tonileigh/node_modules/gulp-watch/node_modules/chokidar/node_modules/readdirp/node_modules/graceful-fs/graceful-fs.js:42:10
    at FSReqWrap.oncomplete (fs.js:95:15)
我也尝试过这个,基于:

我可能弄错了,但我希望这是为了观察glob的变化并应用函数。该函数获取一些JSX并使用ReactJS将其转换为原始JS,然后将找到的所有文件合并为一个JS文件

这没有错误,但我在根目录中获得了一个新目录,它遵循glob中的模式,创建了一个新的已编译文件示例

没有上述两次尝试,我的完整文件如下:

var gulp = require('gulp'),
    concat = require('gulp-concat'),
    react = require('gulp-react'),
    sass = require('gulp-sass'),
    watch = require('gulp-watch'),

    jsxToJs = function() {
      gulp.src('src/**/*.js')
        .pipe(react())
        .pipe(concat('javascript.js'))
        .pipe(gulp.dest('./'));
    },

    scssToCss = function() {
      gulp.src('src/style.scss')
        .pipe(sass('style.css').on('error', sass.logError))
        .pipe(gulp.dest('./'));
    };

gulp.task('jsxToJs', jsxToJs);
gulp.task('styles', scssToCss);
gulp.task('js', ['jsxToJs', 'concat']);
gulp.task('build', ['jsxToJs', 'styles']);
  • 试着找到一些带gulp的Yeoman发电机并安装它们
  • 使用此代码
  • 这将在每次更改js时重新加载。您可以创建一些构建任务并将其添加到脚本中,如下所示:

    ...
    gulp.task('mybuildtask, function() {
        gulp.src('src/**/*.coffee')
        .pipe($.coffee())
        .pipe($.uglify())
        .pipe(gulp.dest('src/scripts'));
    });
    
    gulp.task('mysupertask', function () {
        gulp.watch('src/**/*.js').on('change', ['mybuildtask'],reload);
    });
    
    您可以通过
    gulpmysupertask

    不确定mybuildtask字符串语法

        gulp = require('gulp);
        var $ = require('gulp-load-plugins')();
        var browserSync = require('browser-sync);
        var reload = browserSync.reload;
    
        gulp.task('mysupertask', function () {
            gulp.watch('src/**/*.js').on('change', reload);
        });
    
    ...
    gulp.task('mybuildtask, function() {
        gulp.src('src/**/*.coffee')
        .pipe($.coffee())
        .pipe($.uglify())
        .pipe(gulp.dest('src/scripts'));
    });
    
    gulp.task('mysupertask', function () {
        gulp.watch('src/**/*.js').on('change', ['mybuildtask'],reload);
    });