【问题标题】:grunt-contrib-watch with livereload with vs without grunt-contrib-connectgrunt-contrib-watch 带 livereload 带 vs 不带 grunt-contrib-connect
【发布时间】:2017-06-12 01:38:18
【问题描述】:

我是 Node 新手,grunt,我同时使用 grunt-contrib-watch 和 grunt-contrib-connect。

据我了解,使用 livereload = true 选项的监视任务会重新运行目标的上述任务,并通过触发 livereload 服务器来提供重新加载的静态文件来刷新浏览器。

但是,如果浏览器重新加载和静态文件服务发生在使用 livereload=true 选项的监视任务中,为什么我们需要再次 grunt-contrib-connect 来完成相同的工作。

  • 请说明我们是否仍然需要连接任务来服务于这个目的,还是为了其他目的。
  • 我是否理解正确,只需使用 livereload=true 观看即可实现目标。

谢谢。

【问题讨论】:

    标签: node.js grunt-contrib-watch grunt-contrib-connect


    【解决方案1】:

    grunt-contrib-watch中的livereload选项负责触发websocket请求浏览器重新加载页面。它不是 http 服务器。我记得grunt-contrib-connect 只是一个HTTP server。请记住,grunt-contrib-watch 在端口 35736 启动 websocket 服务器,所以添加脚本

    <script src="//localhost:35729/livereload.js"></script>
    

    在浏览器中触发实时重新加载。

    希望这能阐明您的需求

    【讨论】:

    • 每当修改任何 css/js 文件时,如果我可以重新运行任务,重新加载服务器中的文件,只需使用 livereload 选项和 livereload.js 进行页面刷新,然后我不确定我再次需要 grunt-contrib-connect 做什么? Coz,通常这就是静态文件所需要的。请纠正我/澄清。谢谢。
    • @Madav 我认为你的意思是直接在浏览器中打开文件,我想这会很好。在我的情况下,我通常开发单页应用程序,因此需要一些服务器路由。这就是为什么需要http server。不是说没有它就不行,但正确的方法是使用服务器。此外,您不仅限于在 grunt 中定义服务器,我通常最终使用第三方服务器,例如 nginx 等,即使是我的开发代码:)
    • 是的,我理解对 http 服务器的需求。但是,对于打开的静态文件,是否认为仅 watch-liverreload 选项就足以完成工作?谢谢。
    • 是的。但我会推荐一个服务器,因为那是代码应该在 (y) 中提供的最终环境
    猜你喜欢
    • 2015-01-25
    • 2013-12-05
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 2017-03-18
    • 2014-03-21
    • 2014-11-19
    • 1970-01-01
    相关资源
    最近更新 更多