はじめまして!以下、投稿させていただきます。
■やりたいこと
ローカルでファイルを修正し、vagrant側のサーバー上でその更新を感知してライブリロードさせたい
※修正ファイルはhtml, css, js, phpなどフロントに関するものです
■環境など
□ローカル側
・デスクトップPC(windows7)
・Desktop/.../vagrant/build/
□vagrant側
・Webサーバーを用意(centos+apache)
・192.168.33.10でブラウザ、sftpアクセス可能
・/var/www/html/public_html/
※public_html→ドキュメントルート
■やろうとしている手順
- ローカルでgulpを使用し、公開ファイルを/build/以下に出力する
- そのままgulp-sftpで、vagrant(192.168.33.10)の.../public_html/へ一式ファイルアップロードする
- /var/www/html/public_htmlと同じ並びにgulpを用意し、gulpを使ってbrowser-syncを使用できるようにする
- gulpで/public_html/以下のファイルを監視し、更新があればbrowser-syncを発動させる
- ブラウザで192.168.33.10へアクセスし、ライブリロードを確認する
■困っていること■
上記4までは上手く行っているようなのですが、肝心のブラウザでのライブリロードを確認することができません。
※gulpのログ(vagrant ssh > gulp)には、変更に応じてReloading Browsers...と表示はされていきます
<質問1:>
自分ではゲストOS/ホストOSのネットワーク周りの設定が不足しているのかなと思いはしますが、あまりその方面の知識が無いため、何をどう確認・設定してよいか検討が付きません。なにか怪しそうなところ、お分かりになりそうなことはありますでしょうか。。。
<質問2:>
やりたい動作が確認できていないのにアレですが、sftpでファイルを一括で送ると、かなりのファイル数が変更された!と見なされるかと思います。その度browserSyncが発動すると処理が重くなるのかとの心配もあります。ファイル送信が全て終わったらそこで1回のみreloadを実行する、もしくはreloadは連続して実行はさせない、といった処理は可能なものでしょうか。
どうぞよろしくお願いいたします。
なお実行しているgulpfile.jsは以下の様なものです
lang
1var gulp = require("gulp"); 2var browserSync = require('browser-sync'); 3var reload = browserSync.reload; 4 5gulp.task('browser-sync', function() { 6 browserSync({ 7 server: { 8 baseDir: "./public_html/" 9 } 10 }); 11}); 12 13gulp.task('bs-reload', function () { 14 browserSync.reload(); 15}); 16 17gulp.task('default',['browser-sync'], function() { 18 gulp.watch("./public_html/**/*", ['bs-reload']); 19});
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。