2015-06-10 19 views
8

Bazı güzel tarayıcı eklentileri, perfectPixel biriyle browsersync + gulp kullanıyorum. Sorunum her çalışmamı kurtardığımda, tarayıcıyı yeniden yüklemeye zorluyor, böylece tarayıcıyı temizliyor ve tarayıcı uzantıyı kapatıyor. Bu, eklentiyi yeniden etkinleştirmemize ve bu verimsiz iş akışına devam etmeme neden oluyor. Herhangi bir fikri olan var mı?Browsersync, güncellenen içeriği tarayıcıda yenilemeden yapabilir mi?

GÜNCELLEME Matthew Aşağıda 2015/07/07 , ancak bu benim yudum set-up ile çalışmak için alınamıyor, Yuvalarının içeren bir solüsyon bazı bağlantılar sağladı.

var gulp = require('gulp'), 
    open = require('gulp-open'), 
    browserSync = require('browser-sync').create(); 

var WebSocketServer, socket, wss; 

WebSocketServer = require('ws').Server; 

wss = new WebSocketServer({ 
    port: 9191 
}); 

var reload = browserSync.reload; 

var paths = { 
    css: 'app/REPSuite/web/static/css/*.css', 
    js: 'app/REPSuite/web/static/js/*.js', 
    html: 'app/*.html' 
}; 

gulp.task('reload', function() { 
    var client, i, len, ref, results; 
    ref = wss.clients; 
    results = []; 
    for (i = 0, len = ref.length; i < len; i++) { 
     client = ref[i]; 
     results.push(client.send('reload')); 
    } 
    return results; 
}); 

socket = null; 

this.reloadClient = { 
    connect: function() { 
     socket = new WebSocket('wss://localhost:9191'); 
     socket.onopen = function() { 
      return console.log('connected'); 
     }; 
     socket.onclose = function() { 
      return console.log('closed'); 
     }; 
     return socket.onmessage = function(message) { 
      if (message.data === "reload") { 
       return window.chrome.runtime.reload(); 
      } 
     }; 
    }, 
    disconnect: function() { 
     return socket.close(); 
    } 
}; 

// Static Server + watching scss/html files 
gulp.task('serve', ['css'], function() { 

    browserSync.init({ 
     server: "./app", 
     files: [paths.html, paths.css, paths.js] 
    }); 

    gulp.watch(paths.css, ['css']); 
    gulp.watch(paths.html).on('change', browserSync.reload); 
}); 

// Compile sass into CSS & auto-inject into browsers 
gulp.task('css', function() { 
    return gulp.src(paths.css) 
     .pipe(browserSync.stream()); 
}); 

gulp.task('default', ['serve','reload']); 
+0

bunu buldum: https://www.npmjs.com/package/bs-html-injector – Ryuk87

cevap

2

Tarayıcı senkronizasyonu, uzantılar varsayılan olarak kendi sanal alanlarında çalışacak şekilde tasarlandığından, bunu yerel olarak yapamaz.

Sen i Quickfix gerekli çünkü ben bu kullanarak sona erdi yüzden rahatsız etmedi, o aşmanın WebSockets olan bir şey özel yazmak gerekir:

https://chrome.google.com/webstore/detail/extensions-reloader/fimgfedafeadlieiabdeeaodndnlbhid

Ama bu size yardımcı olmalıdır:

http://blog.waymondo.com/2014-09-16-live-reloading-chrome-apps-and-extensions-with-gulp-and-websockets/

+0

Merhaba Matta, kaynaklar için ilk teşekkürler! Gecikme için üzgünüm, ama sonunda listelediğiniz "waymondo" bağlantısıyla uğraşma fırsatım oldu, ancak işe yaramaya gelemedim. Hataları alamıyorum; Sanırım problemim browserSync '' websocket' versiyonuna benzer sunucular olabilir mi? –

+0

sorun giderme ve sorun giderme ile ilgili bir sorun yaşıyorsanız, ayrı bir soru oluşturun. –

İlgili konular