【问题标题】:nitrous.io browsersync.io gulpnitrous.io browsersync.io gulp
【发布时间】:2014-09-13 00:40:29
【问题描述】:

我一直在使用 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 非常友好地发布了这个演示,实时重载:http://help.nitrous.io/setting-up-gulp-with-livereload-and-sass/ ,他们将实时重载端口设置为 4002,因为他们为 HTTP 分配了端口。不管我为无法解析的浏览器同步获取本地主机地址。这是一些示例输出:

[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 类型的环境。谁能指出我正确的方向?

补充

再深入一点,我已经阅读了 nitrous 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/,我认为这是来自节点。我相信这意味着浏览器同步服务器没有正确启动。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2013-09-20
      相关资源
      最近更新 更多