2014-12-06 45 views
3

我想要從不同的項目中獲得livereload在一個網站,由不同的服務器觸發的工作。我使用Grunt.js和grunt-contrib-connect和grunt-contrib-watch。如何在單個頁面中使用多個服務器的livereload? (特別是與Grunt.js連接和觀看)

下面是一個例子:44444

  • 項目C當前正在運行的livereload服務器:33333
  • 項目B當前在本地主機上運行的livereload服務器:

    • 項目A當前在本地主機上運行的livereload服務器在localhost:55555

    現在讓我們說,我跑在localhost網頁:9800應該從livereloading 因此受益在大多數情況下,只有一個livereload過程存在,一個人必須像這樣在本地主機:9800/index.html的:

    
    <body> 
        ... 
        <script type="text/javascript" charset="UTF-8" src="//localhost:35729/livereload.js"></script> 
    </body> 
    

    因此,與多個livereload服務器,我想我必須包括所有livereload腳本:

    
    <body> 
    ... 
        <script type="text/javascript" charset="UTF-8" src="//localhost:33333/livereload.js"></script> 
        <script type="text/javascript" charset="UTF-8" src="//localhost:44444/livereload.js"></script> 
        <script type="text/javascript" charset="UTF-8" src="//localhost:55555/livereload.js"></script> 
    </body> 
    

    這是行不通的。只有第一個腳本會在瀏覽器中觸發livereload。在grunt-contrib-watch的文檔中,他們有一個關於在任務的不同目標中運行不同服務器的例子。你如何真正做到這一點?

    感謝您的幫助

    這裏是測試我的收藏任務:

    
        watch: { 
    
        css: { 
         files: ['www/**/*.css'], 
         options: { 
         livereload: 33333 
         } 
        }, 
    
        html: { 
         files: ['www/**/*.html'], 
         options: { 
         livereload: 44444 
         } 
        }, 
    
        js: { 
         files: ['www/**/*.js'], 
         options: { 
         livereload: 55555 
         } 
        }, 
    ... 
    } 
    
  • 回答

    2

    此配置無法正常工作。

    livereload.js實例化一個全局對象LiveReload請參閱(livereload-js/src/startup.coffee)。 每個LiveReload對象只有一個網絡套接字可用,所以你不能在3個套接字上使用。

    我想和你有相同的配置,但今天我找不到它的工作

    相關問題