2016-04-22 64 views
0

的問題是在流刷新頁面
剛剛重裝法正常工作

但是,當我的用戶browserSync.stream()(browserSync.reload({流:真})),它不工作爲什麼browsersync不會重新加載頁面

這是我的瀏覽器同步初始化函數

function browserSyncInit(baseDir, browser) { 
    browser = browser === undefined ? 'default' : browser; 

    var routes = null; 
    if(baseDir === conf.paths.src || (util.isArray(baseDir) && baseDir.indexOf(conf.paths.src) !== -1)) { 
    routes = { 
     '/bower_components': 'bower_components' 
    }; 
    } 

    var server = { 
    baseDir: baseDir, 
    routes: routes, 
    middleware: proxyMiddleware('http://0.0.0.0:8080') 
    }; 

    var nodemonConfig = { 
    cwd: path.normalize(__dirname + '/../../'), 
    script: 'server/server.js', 
    ext: 'js json', 
    ignore: ['client/**/*.*'], 
    env: {'PORT': '8080'} 
    }; 
    var serverStarted; 

    nodemon(nodemonConfig) 
    .on('start', function() { 
     if (serverStarted) return; 

     browserSync.init(null, { 
     startPath: '/', 
     open: false, 
     server: server, 
     browser: browser 
     }); 
     serverStarted = true; 
    }); 
} 

代理服務器是環迴應用(可能是問題,在這一點)

它的任務重裝風格和scrips

gulp.task('styles-reload', ['styles'], function() { 
    return buildStyles() 
    .pipe(browserSync.stream()); 
}); 


gulp.task('scripts-reload', ['scripts'], function() { 
    return buildScripts() 
    .pipe(browserSync.stream()); 
}); 

回答

0

流是在gulp.dest後注入腳本/ CSS /等,從一個任務的咕嘟咕嘟流,這就是爲什麼在the documentation,它提到將其放置。

如果您正在手動重新加載BrowserSync頁面,您可以在兩個函數中使用.reload來完成此操作,否則,您需要將這些文件傳遞到重新加載任務中,因爲它看起來像是「重新從別處調用這些任務。

爲了補充說明,我沒有看到將兩個任務分開的原因(樣式/腳本及其各自的重新加載任務)。您應該在dest之後將其管道化,以便您不必擔心開始新流或合併任務。

+0

thnx 但是如果要改變樣式,我想將它串流起來 但我不能 –

+0

這就是我在答案中提到的 - 「您需要將文件傳遞到重新加載任務中,因爲它看起來像你從其他地方調用這些任務。「換句話說,當您管道browserSync.stream()時,從buildScripts方法返回的注入樣式和腳本是否會被注入? – JSess

相關問題