2016-04-22 177 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

相关问题