2016-07-19 83 views
0

usage gulp-express規範的一部分之後,我試圖用livereload安裝一個快速開發服務器。我有單獨的任務做javascript醜化,將scss轉換爲css並縮小html,所以我只需要從我的dist文件夾運行服務器。gulp-express沒有運行livereload

到目前爲止,一切正常,除了livereload(瀏覽器不會重新加載css更改)。

我一飲而盡任務:

gulp.task('server', function() { 
    server.run(['main.js'],[],[1337]); 
    gulp.watch(['/dist/**/*.html'], server.notify); 
    gulp.watch(['/dist/**/*.css'], server.notify); 
    gulp.watch(['/dist/**/*.js'], server.notify); 
    gulp.watch(['/dist/assets/images/*.*'], server.notify); 
}); 

main.js:

// packages 
var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var morgan = require('morgan'); 
var path = require('path'); 

//app configuration 
    // body parser 
    app.use(bodyParser.urlencoded({ extended: true })); 
    app.use(bodyParser.json()); 
    //CORS requests 
    app.use(function(req, res, next) { 
     res.setHeader('Access-Control-Allow-Origin', '*'); 
     res.setHeader('Access-Control-Allow-Methods', 'GET, POST'); 
     res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization'); 
     next(); 
    }); 
    //log all requests to console 
    app.use(morgan('dev')); 

app.use(express.static(__dirname + '/dist')); 
//catchall route 
app.get('*', function(req, res) { 
    res.sendFile(path.join(__dirname + '/dist/index.html')); 
}); 

//start the server 
app.listen(1337); 
console.log('Running on port 1337!'); 

當運行一飲而盡服務器我得到在控制檯以下消息:

livereload [微小-LR ]收聽35729 ... 在端口1337上運行!

我可以在瀏覽器中加載頁面,但它不會自動刷新代碼更改。

我在做什麼錯?

回答

0

你正在努力解決你的問題,我知道這篇文章已經9個月大了,但如果它對任何人都有用,我會發佈一個解決方案,它對我有用,而且我和你有同樣的問題,這是我的解決方案:

gulp.task('webserver', function() { 
    var server = gls(['app.js','public', 3000], undefined, {}); 
    server.start(); 

    //Watch files 
    gulp.watch([paths.images], function (file) { 
     gulp.start('custom-images'); 
     server.notify.apply(server, [file]); 
    }); 
    gulp.watch([paths.scripts], function (file) { 
    gulp.start('custom-js'); 
    server.notify.apply(server, [file]); 
    }); 
    gulp.watch([paths.custom_styles], function (file) { 
    gulp.start('custom-styles'); 
    server.notify.apply(server, [file]); 
    }); 
    gulp.watch([paths.templates], function (file) { 
     gulp.start('custom-templates'); 
     server.notify.apply(server, [file]); 
    }); 
    gulp.watch([paths.index], function (file) { 
     gulp.start('usemin'); 
     server.notify.apply(server, [file]); 
    }); 
    gulp.watch([paths.build_index], function (file) { 
     gulp.start('convert-index'); 
     server.notify.apply(server, [file]); 
    }); 
}); 

正如你所看到的,問題是,我的理解,你需要傳遞一個回調函數來gulp.watch(),然後調用server.notify.apply (服務器,[文件]),注意你傳遞服務器和你修改的文件,我想這是因爲你需要告訴liveReload這是你已經改變的文件。希望這個幫助,歡呼。西格弗裏德·

我剛剛發現這一點,我認爲這是一個很好的解決方案過於: https://stackoverflow.com/a/27488331/4613549