如何在Cloud9 IDE中使用gruntserve?

2023-11-24

在我的 Gruntfile.js 中,我尝试这样做:

connect: {
  options: {
    port: process.env.PORT,
    hostname: process.env.IP,
    livereload: 35729
  }
}

我尝试从 Cloud 9 终端运行,得到以下信息:

运行“服务”任务

运行“concurrent:server”(并发)任务

运行“connect:livereload”(连接)任务致命错误:端口 8080 为 已被另一个进程使用。

然后我将 Gruntfile.js 更改为以下内容:

connect: {
  options: {
    port: 9000,
    hostname: process.env.IP,
    livereload: 35729
  }
}

从终端我得到:

运行“服务”任务

运行“concurrent:server”(并发)任务

运行“connect:livereload”(连接)任务已启动连接 Web 服务器 在http://0.0.0.0:9000

正在运行“watch”任务等待...

但我如何访问http://0.0.0.0:9000来自云9? 我努力了http://localhost:9000, http://127.0.0.1:9000,我在这里错过了什么吗?


显然,你实际上可以得到实时重载使用时在 Cloud9 上工作Apache作为网络服务器,通过使用“mod_proxy_wstunnel”代理 grunt-watch 的 websocket 请求:

1)添加以下指令/etc/apache2/mods-available/proxy_wstunnel.load

ProxyPass /livereload/ ws://127.0.0.1:35729/

2)启用“mod_proxy_wstunnel”及其依赖项“mod_proxy”

ln -s /etc/apache2/mods-available/proxy_wstunnel.load /etc/apache2/mods-enabled/proxy_wstunnel.load
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load

3)重新启动阿帕奇

service apache2 restart

4) 到目前为止一切顺利,现在您必须通过修改 Livereload 将使用的 websocket URL 进行硬编码livereload.js脚本,在我的特殊情况下,它位于〜/myworkplace/grunt-contrib-watch/node_modules/tiny-lr/lib/public/livereload.js,您需要更改以下行:

this._uri = "ws://" + this.options.host + ":" + this.options.port + "/livereload/";

to

this._uri = "ws://YOUR_WORK_PLACE.c9.io/livereload/";

5) 最后但并非最不重要的一点是,您必须参考livereload.js直接在您想要的页面中编写脚本,在我的特定实例中:

<script src="/ng-boilerplate/node_modules/grunt-contrib-watch/node_modules/tiny-lr/lib/public/livereload.js"></script>

希望这可以帮助某人,尤其是节省一些时间:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Cloud9 IDE中使用gruntserve? 的相关文章

随机推荐