2016-04-02 3 views
2

Я пытаюсь создать поток сборки, используя gulp и nodemon. Целью является просмотр sass-файлов и их компиляция в css, а также перезапуск приложения-узла при изменении файла сервера.Задача Gulp-nodemon и watch

Моего gulpfile.js:

gulp.task('sass', function(){ 
    return gulp.src(sassFilesTobeProcessed). 
    pipe(sass()). 
    pipe(concat('ready_stylesheet.css')). 
    pipe(gulp.dest('express/public/stylesheets')) 
}) 

gulp.task('watch', function(){ 
    return gulp.watch(allSassFiles, ['sass']); 
}) 

gulp.task('serve', function(){ 
    return nodemon({ 
    script: 'express/app.js', 
    }).on('start', ['watch']) 
    .on('change', ['watch']) 
    .on('restart', function(){ 
     console.log('restarted'); 
    }) 
}) 

Задача часы работает нормально, файлы компилируются после изменения. Но изменения в моем файле сервера app.js не запускают перезапуск сервера. Когда я комментирую операторы .on, он начинает работать нормально (перезагрузка сервера), но тогда, конечно, файлы sass больше не наблюдаются. Поэтому я предполагаю, что между этими двумя конфликтами существует некоторый конфликт, который я не могу обнаружить. Цените любую помощь! Моя ОС - Windows 7, узел 4.2.6, 1.9.1 nodemon

ответ

3

Используйте целевую зависимость вместо .on(event) начать watch задачу:

gulp.task('serve', ['watch'], function(){ 
    return nodemon({ 
    script: 'express/app.js', 
    }) 
    .on('restart', function(){ 
    console.log('restarted'); 
    }) 
}) 
0

испускать событие рестарта с nodemon

const cfg = require('../config') 
const gulp = require('gulp') 
const nodemon = require('nodemon') 
const gnodemon = require('gulp-nodemon') 

gulp.task('nodemon', ['ts', 'json'],() => { 
    gnodemon({ 
    script: cfg.paths.main, 
    tasks: ['ts', 'json'], 
    ext: 'js', 
    watch: [cfg.paths.src], 
    // para no alterar el entorno de prodicion con test 
    env: {'NODE_ENV': process.env.NODE_ENV !== 'production' 
     ? process.env.NODE_ENV || 'development' : 'development'} 
    }) 
    .on('start', ['mocha']) 
}) 

gulp.task('default', ['nodemon'],() => { 
    gulp.watch(cfg.paths.src, (event) => nodemon.emit('restart')) 
}) 
Смежные вопросы