首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在假定已监视的文件夹内的文件更改上触发生成功能

无法在假定已监视的文件夹内的文件更改上触发生成功能
EN

Stack Overflow用户
提问于 2016-01-05 19:58:17
回答 1查看 935关注 0票数 1

我已经尝试了几种方法,让我大口地看一个文件夹的文件,以便重建文件的变化,并停止了我必须手动这样做。

我确信,只要在构建任务数组中添加一个监视任务,它就可以完成最初的构建,让watch打开以侦听开发会话中的更改。

我尝试过这样做,这是从这个例子来自中提取的-我已经删除了batch调用,因为我希望构建在每个事件上触发。

代码语言:javascript
复制
gulp.task('watch', function () {
    watch('src/**/*.js', function (events, done) {
        gulp.start('build', done);
    });
});

对gulp的调用工作正常,并且它似乎正在监视,但当我对文件夹中的文件进行更改时,就会显示此错误。

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

代码语言:javascript
复制
/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)

我也尝试过这一点,基于这个例子来自

代码语言:javascript
复制
jsxToJs = function() {
  gulp.src('src/**/*.js')
    .pipe(watch('src/**/*.js'))
    .pipe(react())
    .pipe(concat('javascript.js'))
    .pipe(gulp.dest('./'));
}

我可能弄错了,但我希望这样可以观察全局的变化并应用该函数。该函数接受一些JSX,并使用ReactJS将其转换为原始JS,然后将它找到的所有文件连接到一个js文件中。

它没有出错,但我在根目录中得到了一个新目录,该目录遵循glob中的模式,创建了一个新编译的保存文件示例

我的完整文件,没有我上面的两次尝试,是在这里:

代码语言:javascript
复制
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']);
EN

回答 1

Stack Overflow用户

发布于 2016-01-11 17:52:11

  1. 试着找一些带口的约曼发电机并安装它们
  2. 使用此代码
代码语言:javascript
复制
    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);
    });

这将在每次对js进行更改时重新加载。您可以进行一些构建任务,并将其添加到脚本中,如下所示:

代码语言:javascript
复制
...
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);
});

您可以通过gulp mysupertask运行所有这些

不确定如何构造任务字符串语法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34620201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档