nitrous.io browsersync.io gulp

时间:2014-09-13 00:40:29

标签: node.js proxy livereload nitrousio browser-sync

我一直在使用nitrous.io美学框,正在构建包含browsersync.io的gulp任务。我已经能够通过gulp安装和实例化浏览器同步,但我无法获得有效的代理地址。

这是我的gulp.js文件的截断版本:

var gulp = require('gulp');
var browserSync = require('browser-sync');
var reload = browserSync.reload;

gulp.task('browser-sync', function () {
 browserSync.init( {
 server: {
   baseDir: '~/workspace/www/XXXXXXX/',
   proxy: 'XXXXXX-XXXXXX.euw1.nitrousbox.com:3000/XXXXXXX/',
   port: 4002
  }
 });
});

Nitrous非常友好地发布了这个演示版,其中包含live-reload:http://help.nitrous.io/setting-up-gulp-with-livereload-and-sass/ ,因为他们将端口分配给HTTP,因此将实时重载端口设置为4002。无论我获取不解析的browsersync的本地主机地址。这是一些示例输出:

[00:19:57] Starting 'browser-sync'...                                                                                                                                                                    
[00:19:57] Finished 'browser-sync' after 7.4 ms                                                                                                                                                          
[BS] Local: >>> http://localhost:3001                                                                                                                                                                    
[BS] External: >>> http://192.168.233.209:3001                                                                                                                                                           
[BS] Serving files from: ~/workspace/www/XXXXXXX/ 

从上面可以看出,端口并没有被尊重,但是这些地址只适用于localhost类型的环境。有人能指出我正确的方向吗?

ADDITIONS

进一步深入研究,我已经阅读了来自亚硝酸盐的文档http://help.nitrous.io/faq-localhost/ 因此我对盒子内的端口分配和转发了解得更多。 我的gulp文件现在如下所示:

var gulp = require('gulp');
var browserSync = require('browser-sync');
var reload = browserSync.reload;

gulp.task('browser-sync', function () {
 browserSync.init( {
 server: {
   baseDir: '~/workspace/www/XXXXXXX/',
   proxy: '0.0.0.0:3000/XXXXXXX/',
   port: 4002
  }
 });
}); 

在假脱机gulp browser-sync之后,gulp的响应是相同的,但现在如果我将浏览器定向到XXXXXX-XXXXXX.euw1.nitrousbox.com:3001/XXXXXXX/,我会得到一个响应Cannot GET /XXXXXXX/,我想这是来自节点。我相信这意味着浏览器同步服务器无法正常进行假脱机。

1 个答案:

答案 0 :(得分:0)

port是顶级配置选项,因此您的配置应该更像:

gulp.task('browser-sync', function () {
    browserSync.init({
        proxy: '0.0.0.0:3000/XXXXXXX/',
        port: 4002
    });
});