我一直在尝试通过我的localhost API服务器上的ember-cli-browser-sync(通过"ember-cli-browser-sync": "git://github.com/dylanharrington/ember-cli-browser-sync.git"
安装在package.json
中,因为它不在npm寄存器中)让browser-sync与ember-cli玩得很好,但一直无法使其工作。
只是做
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)]
}
});
});
它基本上为BrowserSync提供的我的外部URL提供API。
所以我尝试使用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?
我放弃了自己解决这个问题的尝试,最终只使用了XIP,这可能适合您的需求。