2014-11-19 7 views
6

मुझे अपने योनि पर्यावरण (pupppet के साथ उत्पन्न) में gulp-livereload का उपयोग कर समस्या है। मेरा कंप्यूटर एक विंडोज होस्ट है, और वीएम एक डेबियन है।योनि पर्यावरण के साथ gulp-livereload: livereload.js सुलभ नहीं है

मैं इस gulpfile का उपयोग करें:

संसाधन लोड करने में असफल: शुद्ध :: ERR_CONNECTION_TIMED_OUT http://markup.dev:35729/livereload.js?ext=Chrome&extver=0.0.5

var gulp  = require('gulp'), 
    less  = require('gulp-less') 
    lr   = require('tiny-lr'), 
    livereload = require('gulp-livereload'), 
    server  = lr() 
; 

gulp.task('less', function() { 
    gulp.src('assets/less/*.less') 
     .pipe(less()) 
     .pipe(gulp.dest('build/css')) 
     .pipe(livereload(server)) 
    ; 
}); 

gulp.task('watch', function() { 
    gulp.watch('assets/less/*.less', ['less']); 
    livereload.listen(35729, function(err){ 
     if(err) return console.log(err); 
    }); 
}); 

gulp.task('default', ['watch', 'less']); 

और जब Chrome एक्सटेंशन जादू जे एस फ़ाइल इस संदेश को जोड़ने मैं प्राप्त

लेकिन मेरे वीएम में, यदि मैं निम्न कमांड लाइन चलाता हूं, तो मुझे यह

मिलता है 0
wget http://localhost:35729/livereload.js?ext=Chrome&extver=0.0.5 
+0

क्या आप जानते हैं कि आपके कोड में 'lr', 'livereload' और 'server' चर आपके ग्लोबल्स हैं? –

+0

हाँ मुझे पता है लेकिन मुझे नहीं लगता कि यह समस्या – vurtupesz

+0

हाँ है ... हालांकि ग्लोबल्स का उपयोग करना बुरा और अप्रत्याशित है, मैं सहमत हूं। यही कारण है कि मैंने जवाब नहीं पोस्ट किया। –

उत्तर

8

मेरे पास निश्चित होने के लिए पर्याप्त जानकारी नहीं है, लेकिन मुझे लगता है कि आपकी समस्या यह है कि आप मेजबान से पृष्ठ तक पहुंचने का प्रयास कर रहे हैं, लेकिन लाइवरेलोड पोर्ट को अग्रेषित नहीं किया गया है (वीएम के पास यह है आईपी ​​पता और योनि को मेजबान को कुछ बंदरगाहों को अग्रेषित करने के लिए कॉन्फ़िगर किया जा सकता है ताकि वे मेजबान पर स्थानीय दिखाई दें)।

अपने Vagrantfile में निम्न पंक्ति जोड़कर प्रयास करें:

config.vm.network "forwarded_port", guest: 35729, host: 35729 

(प्रलेखन देखें: https://docs.vagrantup.com/v2/networking/forwarded_ports.html)

वैकल्पिक रूप से

अगर आप सीधे वी एम (अर्थात आप markup.dev अतिथि के आईपी से मैप किया गया है मार रहे हैं) यह सत्यापित करने योग्य हो सकता है कि आपके वीएम पर एक फ़ायरवॉल कॉन्फ़िगर नहीं किया गया है जो बाहरी पहुंच से लाइवरेलोड पोर्ट को अवरुद्ध कर सकता है।

+0

द्वारा होस्ट किया गया हाय, markup.dev मेरी मेजबान फ़ाइल में परिभाषित किया गया है, और वीएम द्वारा होस्ट किया गया है। जब मैं अपने ब्राउज़र में http://markup.dev खोलता हूं, यह पोर्ट 80 के लिए विशिष्ट कॉन्फ़िगरेशन के बिना काम कर रहा है, मैंने आपके समाधान का प्रयास किया लेकिन यह मेरी समस्या को ठीक नहीं करता है :( – vurtupesz

+0

क्या आपने जोड़ने के बाद अपनी योनि कॉन्फ़िगरेशन को फिर से लोड किया ऊपर की रेखा? क्योंकि यह वास्तव में नेटवर्किंग मुद्दे की तरह लगता है। – hequ

2

मेरे मामले में, पोर्ट अग्रेषण स्वचालित रूप से काम करता था। हालांकि, मैं मेजबान के रूप में वी एम के आईपी निर्दिष्ट करने के लिए किया था:

livereload.listen({ 
    host: '192.168.33.10' 
}); 

अद्यतन: null काम करता है पासिंग, भी:

livereload.listen({ 
    host: null 
}); 

मुझे लगता है कि अंतर्निहित http server अलग ढंग से व्यवहार करने के तरीके 'localhost'explicitly गुजर।

संबंधित मुद्दे