0

我一直在尝试让浏览器同步通过ember -cli-browser-sync(通过 in 安装,"ember-cli-browser-sync": "git://github.com/dylanharrington/ember-cli-browser-sync.git"因为package.json它不在 npm 注册表上)与我的 localhost API 服务器一起使用,但一直无法让它工作。

只是在做

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

在本地设备上工作得很好,但无法从外部设备(iPhone)访问我在http://localhost:8000/api/1的 api。

我尝试通过以下方式扩展代理设置以包含我的本地 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 提供给 BrowserSync 提供的我的外部 URL。

所以我试图利用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 吗?

4

1 回答 1

1

我放弃了自己尝试解决这个问题,最终只使用了XIP,这可能适合您的需求。

于 2015-03-27T16:52:02.960 回答