2015-12-23 50 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'] 
    }); 
});