Vagrant,Ember-cli,Windows 8.1,Ubuntu。 Livereload不起作用!从Windows

时间:2015-09-24 09:20:03

标签: ember.js vagrant ember-cli livereload watchman

我有 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浏览器窗口中显示实时重新加载。

这到底是什么问题?

3 个答案:

答案 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。