2014-11-19 3 views
5

У меня возникли проблемы с получением gulp-watch или gulp-watch-less, чтобы стрелять после следующих документированных примеров. Первоначально я сталкивался с проблемой lazypipe (не показано здесь), но мне кажется, что я делаю что-то неправильно в том, как я использую плагины. Вот мой пошатнувшийся код, который все еще не работает.gulp-watch, gulp-watch-less не срабатывает

Обратите внимание, что я пробовал это с помощью обычных часов-глобусов, и он показывает ту же проблему: он не вызывает последующие трубы при изменении. Я расскажу об этом здесь, если это проблема.

Вот мой gulpfile.

var debug = require ('gulp-debug'); 
var gulp = require ('gulp'); 
var less = require ('gulp-less'); 
var watchLess = require ('gulp-watch-less'); 

gulp.task ('dev-watch', function() { 
    // main.less just imports child less files 
    gulp.src ('./app/styles/less/main.less') 
    .pipe (watchLess ('./app/styles/less/main.less')) 
    .pipe (debug()); 
    .pipe (less()) 
    .pipe (gulp.dest ('./app/styles')) 
    ; 
}); 

Когда я запускаю задачу, она выполняет и отлично генерирует ожидаемые файлы. Я вижу, что debug выводит информацию о потоке также отлично.

Когда я изменить файл я вижу, что watchLess набирает изменение:

[10:49:54] LESS saw child.less was changed 
[10:49:54] LESS saw child.less was changed 
[10:49:54] LESS saw main.less was changed:by:import 
[10:49:54] LESS saw main.less was changed:by:import 

Однако менее задача не выполняется. Кажется, он ничего не излучает, потому что отладка не срабатывает.

Вот уместна информация package.json:

"devDependencies": { 
    "gulp": "^3.8.7", 
    "gulp-less": "^1.3.6", 
    "gulp-watch": "^1.2.0", 
    "gulp-watch-less": "^0.2.1" 
} 
+0

Пожалуйста, обратитесь к проглатывать-часы [Выпуск № 108] (https://github.com/floatdrop/gulp-watch/issues/108#issuecomment-63769104) для более подробной информации. –

ответ

1

Ваш код просто запускает Бодрствующего в трубе, но не говорит, что делать потом.

Рабочий пример должен быть следующим:

var 
    gulp = require('gulp'), 
    debug = require ('gulp-debug'), 
    less = require ('gulp-less'), 
    watchLess = require('gulp-watch-less'); 

gulp.task('dev-watch', function() { 
    watchLess('./app/styles/less/main.less') 
    .pipe (debug()) 
    .pipe(less()) 
    .pipe(gulp.dest('./app/styles')) 
}); 

Однако, вы также можете сделать то же самое, используя лишь залпом-часы или глотком (gulp.watch).

0

Это должно быть наилучшим решением, и я получаю readme в github-less github; https://github.com/plus3network/gulp-less https://github.com/gulpjs/gulp/blob/master/docs/recipes/combining-streams-to-handle-errors.mdnpm i stream-combiner2 --save-dev

var combiner = require('stream-combiner2'); 

var combined = combiner.obj([ 
    gulp.src(srcs), 
    less(), 
    autoprefixer({ 
     browsers: ['last 6 versions'], 
     cascade: false 
    }), 
    isDev ? null : cleanCss(), 
    gulp.dest(targetDir + 'css/multi/'), 
].filter(v => v)); 

// any errors in the above streams will get caught 
// by this listener, instead of being thrown: 
combined.on('error', console.error.bind(console)); 
combined.on('end',() => {}); //done have been call when return combined; 
return combined; 
Смежные вопросы