Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 带Guard/Livereload的windows上的Rails开发_Ruby On Rails_Windows_Macos_Virtual Machine - Fatal编程技术网

Ruby on rails 带Guard/Livereload的windows上的Rails开发

Ruby on rails 带Guard/Livereload的windows上的Rails开发,ruby-on-rails,windows,macos,virtual-machine,Ruby On Rails,Windows,Macos,Virtual Machine,我在一台个人电脑上从事Rails开发,因为公司生活需要Windows和安全性 我目前的设置是Ubuntu 14.04,在VM上作为我的开发环境,我通过浏览器在Windows上进行测试。随着我的代码库的扩展和我的新手能力的提高,我越来越关注像guard livereload这样的生产力提升者。除了设置速度慢得令人痛苦之外,在我花几个小时调试这个糟糕的安排之前,我想先问问专家 是否有可能让guard livereload和其他生产力增强程序通过VM来宾->windows主机连接工作?有没有更快/更被

我在一台个人电脑上从事Rails开发,因为公司生活需要Windows和安全性

我目前的设置是Ubuntu 14.04,在VM上作为我的开发环境,我通过浏览器在Windows上进行测试。随着我的代码库的扩展和我的新手能力的提高,我越来越关注像guard livereload这样的生产力提升者。除了设置速度慢得令人痛苦之外,在我花几个小时调试这个糟糕的安排之前,我想先问问专家

是否有可能让guard livereload和其他生产力增强程序通过VM来宾->windows主机连接工作?有没有更快/更被接受的方法

昨晚我在我的个人OSX计算机上克隆了我的项目,有人提醒我为什么要在OSX上亲自开发——我正在寻找一些能提高我自己士气的生产力提振器


说清楚,我不是在问“什么是最好的”。我在问will guard livereload和其他类似的助手gems是否可以跨VM工作,是否有比VM guest到windows 7主机更好的windows开发设置。

这就是我的工作环境,没有理由不起作用

Guard/Livereload在连接到虚拟机的浏览器上运行良好,您只需确保广播,以便您的Windows计算机可以看到它。因此,当运行普通的旧rails服务器时,应该是:

rails s -b 0.0.0.0
如果没有
-b0.0.0.0
,您的windows计算机将无法连接。这是rails最新版本(我认为是4.2.0)中的一项安全改进,同样,您可以将其放入保护文件中

guard 'rails', server: :thin, host: '0.0.0.0' do     
  watch('Gemfile.lock')     
  watch(%r{^(config|lib)/.*})    
end     
如果您在虚拟机上使用编辑器以及在虚拟机上运行的服务器,请确保您在非samba共享上运行(Guard/watch等在windows文件系统上放得不好)

就livereload而言,我已经让它直接工作了,它使用WebSocket,所以如果您没有网络限制,这应该可以


另一种方法是将虚拟机用作纯开发设备,完全忽略windows,只需使用虚拟机中的浏览器进行测试,就像使用mac一样

我不是100%确定这一点,但LiveReload使用WebSocket通知侦听器在文件系统更改时重新加载页面,因此浏览器和服务器是否位于不同的(虚拟)计算机上,甚至是否在网络上都无关紧要。也许这是我的问题?我使用的是samba share b/c,我的编辑器在windows中非常出色。只是以你的例子(使用puma)…但是chrome livereload无法连接。我是否需要确保VM端口已打开?很可能是。不管怎样,您都可以使用强制轮询选项启动guard
bundle exec guard-p
。是的,应该打开端口。你不应该需要更新版本的live reloadAwesome的Chrome扩展…我可以看到我的更改正在被guard识别。视图更改显示在我的终端中重新加载浏览器,但chrome没有重新加载。我还必须运行
guard-p
,让guard识别更改+1.谢谢你的帮助。