Yeoman,Grunt和Nitrous.IO

3

我正在尝试在nitrous.io上运行一个简单的node.js示例。我基本上只是按照yeoman教程使用angular模板进行操作。我不得不将我的localhost修改为0.0.0.0,并将我的liveReload端口更改为4000。我还必须使用--force命令运行grunt server,因为我遇到了以下错误:

Warning: Command failed: /home/action/workspace/node-test/node_modules/grunt-open/node_modules/open/vendor/xdg-open: 1: /home/action/workspace/node-test/node_modules/grunt-open/node_modules/open/vendor/xdg-open: xdg-mime: not found   

经过这些步骤后,实时重新加载似乎无法正常工作。我的“box”需要安装xdg-mime或xdg-utils才能使其正常工作吗?文件监视器似乎注意到了更改,但网页在任何js轮询后都不会更新。
(我对所有这些技术都很新,但似乎这个教程示例应该可以工作)
编辑:经过Sindre的帮助,现在我不再有缺少xdg-mime的问题,但我仍然遇到实时重新加载不起作用的问题。
4个回答

6

根据Nitrous.io的支持团队所述:

问题在于Nitrous服务器上被阻止了WebSockets,此时只有HTTP端口3000 - 9000是开放的。实时重新加载需要同时在同一端口上运行HTTP和WebSockets以使其正常工作。

WebSocket支持可能是我们不久将要添加的功能。


2
更新:Nitrous.IO现在支持WebSockets(http://help.nitrous.io/websockets/)。HTTP的1024-10000端口也已经打开。 - Greg

1
它需要XDG,大多数系统默认安装,才能在浏览器中打开它。

你能澄清一下吗?Nitrous.io是一个托管的IDE,所以我不需要任何自动操作来启动我的浏览器。在这种情况下,我正在进行“远程”开发。 - David Kassa
1
那么您就不需要“打开”任务,只需将其删除即可。 - Sindre Sorhus
那解决了错误,但我的实时重新加载不起作用的根本问题并未解决。 - David Kassa
LiveReload需要在同一个端口上运行WebSockets和HTTP。 Nitrous在2013年9月3日之前根本没有打开WebSockets,因此您可能需要等待未来对此的支持。 - Greg

0
我需要安装xdg-utils来解决这个问题:
Running "open:server" (open) task
finished populating things
Warning: Command failed: /generator-test/node_modules/grunt-open/node_modules/open/vendor/xdg-open: line 584: xdg-mime: command not found
xdg-open  no method available for opening 'http://localhost:9000'
 Use --force to continue.

./xdg-open: line 584: xdg-mime: command not found
xdg-open  no method available for opening 'http://www.google.com'

node_modules/open/vendor/ 目录下有 xdg-open,但没有 xdg-mime。

我使用的远程服务器没有安装 xdg-utils……不确定为什么 node_modules 目录下缺少 xdg-mime……


0

正如您所发现的那样,LiveReload需要WebSockets,而Nitrous默认不支持它们。但是,有好消息:您可以通过SSH隧道转发来使它们工作。我已经在Coderwall上写了更详细的说明


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接