我有 VagrantFile :
Vagrant.configure("2") do |config|
# Use Ubuntu 14.04 Trusty Tahr 64-bit as our operating system
config.vm.box = "ubuntu/trusty64"
# Configurate the virtual machine to use 2GB of RAM
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
# Forward the Rails server default port to the host
config.vm.network :forwarded_port, guest: 4200, host: 4200
config.vm.network :forwarded_port, guest: 35729, host: 35729
一切正常,在我的Windows中我可以访问http://localhost:4200
并且它有效。但是,有一个很大但是。
我将ember的项目文件放在与vagrant共享的Windows文件夹中。
如果我在Windows中保存我的ember项目的文件,我就无法进行实时重载,而在vagrant ssh
我甚至无法查看检测到的更改。
如果我选择vagrant ssh
并使用nano application.hbs
,然后保存新内容,则会检测更改,并在Windows的Chrome浏览器窗口中显示实时重新加载。
这到底是什么问题?
答案 0 :(得分:4)
Vagrant在桌面和VM之间同步目录的方式将破坏ember-cli用于监视文件的默认机制,并在随后编译更新时导致问题。
要恢复此功能,您可以将以下行添加到' .ember-cli'文件
"liveReload": true,
"watcher": "polling"
或使用后备轮询观察器调用serve命令。
ember serve --watcher polling
答案 1 :(得分:1)
我相信这可能会对您有所帮助:http://www.ember-cli.com/user-guide/#usage-with-vagrant
好像你没有回到投票观察者那里。
你也没有使用NFS,因为它不在你的配置中。对于Windows用户,您应该使用winnfsd plugin并使用var map = [
["1", "articles"],
["2", "places"],
["3", "offers"]
].reduce(function(acc, pair) {
acc[pair[0]] = pair[1]
return acc;
}, {});
var entries = [
{ sys: {id:"1"}, fields: "article1" },
{ sys: {id:"2"}, fields: "place1" },
{ sys: {id:"3"}, fields: "offer2" },
{ sys: {id:"1"}, fields: "article2" },
{ sys: {id:"1"}, fields: "article3" },
{ sys: {id:"3"}, fields: "offer2" },
{ sys: {id:"2"}, fields: "place2" }
];
// map and entries can come from a dataset
// this way you can have many different sys.id s
// hash is your final result
var hash = entries.reduce(function(acc, a) {
var key = map[a.sys.id];
acc[key] = acc[key] || [];
acc[key].push(a);
return acc;
}, {});
答案 2 :(得分:1)
我用以下方法解决了这个问题:ember serve --watcher polling
。与Vagrant共享NFS并不适用于Windows。