2015-12-23 43 views
0

这里是我的gulpfile.js:一饮而尽nodemon不起作用

var gulp = require('gulp'), 
    nodemon = require('gulp-nodemon'), 
    plumber = require('gulp-plumber'), 
    livereload = require('gulp-livereload'); 

gulp.task('develop', function() { 
    livereload.listen(); 
    nodemon({ 
    script: 'app.js', 
    ext: 'js ejs html coffee' 
    }).on('restart',function() { 
    console.log('Livereload reload...'); 
    livereload.reload(); 
    }); 
}); 

gulp.task('default', [ 
    'develop' 
]); 

我app.js:“你好!世界

var express = require('express'); 

var app = express(); 

app.set('view engine','ejs'); 

app.get('/', function(req,res){ 
    res.send('Hello world!'); 
}); 

app.listen(8888, function() { 
    console.log('Server started at 8888'); 
}); 

当我改变以“世界,你好!!!!!”,我可以看到我的控制台如下:

enter image description here

它没有记录我的变化。但是页面根本没有被重新加载。我必须刷新浏览器才能看到更改。在我的gulpfile.js中有任何错误?任何想法?谢谢。

回答

0

您的nodemon安装一切正常。您实际上必须刷新浏览器才能看到您所做的更改。

如果您想为您完成,请查看guard-livereload at this website

+0

的**一口,livereload **已经在我的gulpfile.js,但我仍然需要手动刷新页面。 –

1

我看到这个问题很老旧,但无论如何,livereload只有在您的浏览器支持它的情况下才有效。例如,对于Chrome,您需要安装名为LiveReload的扩展程序。这将启用为您刷新页面(不要忘记启用它)。其他选项是使用BrowserSync。除了插件(没有浏览器扩展)外,它实际上并不需要其他任何东西,你可以在你的gulp任务中使用它。这是一个例子(从here拍摄):

var gulp = require('gulp'); 
var browserSync = require('browser-sync'); 
var nodemon = require('gulp-nodemon'); 
var BROWSER_SYNC_RELOAD_DELAY = 500; 

gulp.task('nodemon', function (cb) { 
var called = false; 
    return nodemon({ 
    // nodemon our expressjs server 
    script: 'app.js', 

    // watch core server file(s) that require server restart on change 
    watch: ['app.js'] 
    }) 
    .on('start', function onStart() { 
     // ensure start only got called once 
     if (!called) { cb(); } 
     called = true; 
    }) 
    .on('restart', function onRestart() { 
     // reload connected browsers after a slight delay 
     setTimeout(function reload() { 
     browserSync.reload({ 
      stream: false 
     }); 
     }, BROWSER_SYNC_RELOAD_DELAY); 
    }); 
}); 

gulp.task('browser-sync', ['nodemon'], function() { 

    // for more browser-sync config options: http://www.browsersync.io/docs/options/ 
    browserSync({ 

    // informs browser-sync to proxy our expressjs app which would run at the following location 
    proxy: 'http://localhost:3000', 

    // informs browser-sync to use the following port for the proxied app 
    // notice that the default port is 3000, which would clash with our expressjs 
    port: 4000, 

    // open the proxied app in chrome 
    browser: ['google-chrome'] 
    }); 
});