2016-04-27 33 views
0

我在一個Node環境中,爲SASS運行gulp,爲模板運行EJS,並且我還想讓Browser Sync工作。我無法配置我的gulp文件。如果我運行'node server.js',我的應用程序在瀏覽器中運行,並且EJS正常工作,但是我沒有使用Browser Sync工作。如果我運行gulp,那麼在瀏覽器中會出現'Can not GET /'。瀏覽器同步,EJS,Gulp和節點 - 正在獲取設置

請注意我是Node的新手,所以如果你可以在你的答案中包含任何解釋,這將幫助我學習,並非常感激!

這裏是我的gulpfile:

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var browserSync = require('browser-sync').create(); 
var runSequence = require('run-sequence'); 
var ejs = require("gulp-ejs"); 

gulp.task('default', function(callback) { 
    runSequence(['browserSync', 'watch', 'ejs'], callback); 
}); 

gulp.task('ejs', function(){ 
    return gulp.src('views/html/**/*.ejs') 
    .pipe(ejs({}, {ext:'.html'})) 
    .pipe(gulp.dest('dist/html/')); 
}); 

gulp.task('sass', function() { 
    return gulp.src('sass/**/*.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('public/css/sass')) 
    .pipe(browserSync.reload({ 
     stream:true 
    })); 
}); 

gulp.task('watch', ['browserSync', 'ejs'], function() { 
    gulp.watch('./scss/*.scss', ['sass']); 
    gulp.watch('./views/html/**/*.html', browserSync.reload); 
    gulp.watch('./views/html/**/*.ejs', browserSync.reload); 
    gulp.watch('./public/js/**/*.js', browserSync.reload); 
    gulp.watch('views/html/**/*.ejs', ['ejs']); 
}); 

gulp.task('browserSync', function() { 
    browserSync.init({ 
    server: { 
     baseDir: './' 
    }, 
    }); 
}); 

這裏是server.js

var express = require('express'); 
var app = express(); 
var gulp = require('gulp'); 

gulp.task('default', function(arg) { 

}); 

// set the view engine to ejs 
app.set('view engine', 'ejs'); 

// use res.render to load up an ejs view file 

// index page 
app.get('/', function(req, res) { 
    res.render('index'); 
}); 


app.listen(3000); 

回答

1

嘗試代理初始化測試

gulp.task('browser-sync', function() { 
    browserSync.init({ 
     proxy: "yourlocal.dev" 
    }); 
});