Получение синхронизации браузера для хорошей игры с ember-cli и сервером API localhost

Я пытался заставить синхронизировать браузер, чтобы он хорошо работал с ember-cli через ember-cli-browser-sync (устанавливается через "ember-cli-browser-sync": "git://github.com/dylanharrington/ember-cli-browser-sync.git" в package.json, поскольку его нет в реестре npm) с моим сервером API localhost, но мне не удалось заставить его работать.

Просто делаю

serverMiddleware: function(config) {
  config.options.liveReload = false;
  browserSync({
    injectChanges: true,
    reloadDelay:   10,
    notify:        false,
    open:          false,
    proxy: "localhost:4200"
  });
},

Прекрасно работает для локального устройства, но не может получить доступ к моему API по адресу http://localhost:8000/api/1 с внешнего устройства (iPhone).

Я попытался расширить настройки прокси, чтобы включить мой локальный API через:

var url = require('url'),
    proxy = require('proxy-middleware');

serverMiddleware: function(config) {
  config.options.liveReload = false;

  var proxyOptions = url.parse('http://localhost:8000/api/1');

  browserSync({
    injectChanges: true,
    reloadDelay:   10,
    notify:        false,
    open:          false,
    proxy: {
      target: 'localhost:4200',
      middleware: [proxy(proxyOptions)]
    }
  });

});

Который в основном служит API для моего внешнего URL-адреса, предоставленного BrowserSync.

Поэтому я попытался использовать server:

serverMiddleware: function(config) {
  config.options.liveReload = false;

  var proxyOptions = url.parse('http://localhost:8000/api/1');
  console.log(proxyOptions);
      // proxyOptions.route = '/api';

  browserSync({
    injectChanges: true,
    reloadDelay:   10,
    notify:        false,
    open:          false,
    port: 3000,
    server: {
      baseDir: "./",
      routes: {
        "/app": "app",
        "/assets": "dist/assets",
      },
      index: "app/index.html",
      middleware: function (req, res, next) {
        console.log(req.url);
        next();
      }
    }
  });
},

Который обслуживает правильный индекс и все файлы asset, но вызывает ошибку с ember.

Есть ли у кого-нибудь опыт в этом и какой путь я должен попробовать дальше? Есть ли другой пакет NPM, который я должен использовать для проксирования моего API?


person tr3online    schedule 26.03.2015    source источник


Ответы (1)


Я отказался от попыток решить эту проблему самостоятельно и в итоге просто использовал XIP, который может удовлетворить ваши потребности.

person Kori John Roys    schedule 27.03.2015
comment
Интересно, как открыть API под localhost:8000? мне нужно использовать псевдоним хоста, а затем использовать его на xip.io? - person tr3online; 27.03.2015
comment
Я никогда не пытался сделать что-то вроде 0.0.0.1:8000.10.0.0.1.xip.io. Может работать. Если нет, вы можете настроить виртуальный хост (что-то вроде pow, хотя я не знаю, что вы используете для своего API). - person Kori John Roys; 31.03.2015