質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

0回答

911閲覧

gulpでブラウザ自動リロードが2回目以降効かない

sleeeep12

総合スコア36

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

1クリップ

投稿2019/07/03 06:54

勉強がてら、PHPやSASSを使ってweb制作しようと思い、ローカル環境を作っている段階です。
gulpを使ってローカルサーバーをビルドしています。

理想は、ファイル更新したら、ブラウザも自動リロードされるというものです。
しかし、phpファイルを更新しても、一回めはブラウザ自動リロードされるのですが、2回目以降は何も起こりません。

以下がgulpの挙動です。

▼gulp起動時

gulp

1$ npx gulp 2[15:41:15] Using gulpfile ~/Desktop/works_local/ome/gulpfile.js 3[15:41:15] Starting 'default'... 4[15:41:15] Starting 'build-server'... 5[15:41:15] Starting 'sass'... 6[15:41:15] Starting 'watch'... 7Server was launched 8gulp watch started 9PHP 7.1.23 Development Server started at Wed Jul 3 15:41:16 2019 10Listening on http://127.0.0.1:8001 11Document root is /Users/yuma/Desktop/works_local/ome/src 12Press Ctrl-C to quit. 13[Wed Jul 3 15:41:16 2019] 127.0.0.1:52852 [404]: / - No such file or directory 14[15:41:16] Starting 'browser-reload'... 15[Browsersync] Proxying: http://localhost:8001 16[Browsersync] Access URLs: 17 ------------------------------------- 18 Local: http://localhost:3000 19 External: http://192.168.0.19:3000 20 ------------------------------------- 21 UI: http://localhost:3001 22 UI External: http://localhost:3001 23 ------------------------------------- 24[Browsersync] Reloading Browsers... 25[15:41:18] Starting 'browser-reload'... 26[Wed Jul 3 15:41:18 2019] 127.0.0.1:52864 [404]: / - No such file or directory 27[Browsersync] Reloading Browsers... 28[Wed Jul 3 15:41:19 2019] 127.0.0.1:52869 [200]: /php/ 29[Wed Jul 3 15:41:19 2019] 127.0.0.1:52872 [200]: /img/Logo/Logo.jpg 30[15:41:19] Finished 'sass' after 4.04 s 31[Wed Jul 3 15:41:20 2019] 127.0.0.1:52877 [200]: /img/Logo/Logo.jpg

▼一回目のphpファイル更新(これは成功する)

gulp

1[15:46:58] Starting 'browser-reload'... 2[Browsersync] Reloading Browsers... 3[Wed Jul 3 15:46:59 2019] 127.0.0.1:53606 [200]: /php/ 4[Wed Jul 3 15:46:59 2019] 127.0.0.1:53607 [200]: /php/ 5[Wed Jul 3 15:46:59 2019] 127.0.0.1:53608 [200]: /php/ 6[Wed Jul 3 15:46:59 2019] 127.0.0.1:53609 [200]: /img/Logo/Logo.jpg 7[Wed Jul 3 15:46:59 2019] 127.0.0.1:53610 [200]: /php/ 8[Wed Jul 3 15:46:59 2019] 127.0.0.1:53615 [200]: /php/ 9[Wed Jul 3 15:46:59 2019] 127.0.0.1:53619 [200]: /img/Logo/Logo.jpg 10[Wed Jul 3 15:46:59 2019] 127.0.0.1:53620 [200]: /img/Logo/Logo.jpg 11[Wed Jul 3 15:46:59 2019] 127.0.0.1:53621 [404]: / - No such file or directory 12[Wed Jul 3 15:46:59 2019] 127.0.0.1:53622 [200]: /img/Logo/Logo.jpg 13[Wed Jul 3 15:46:59 2019] 127.0.0.1:53624 [200]: /img/Logo/Logo.jpg 14[Wed Jul 3 15:46:59 2019] 127.0.0.1:53631 [200]: /img/Logo/Logo.jpg 15 16

そして問題の2回目は、自動リロードせずに、gulpを見ても無反応です(上記からターミナルが変わってない)

そして以下がgulpfile.jsです。
▼gulpfile

gulpfile

1const gulp = require('gulp'); 2const browsersync= require('browser-sync'); 3const autoprefixer = require("gulp-autoprefixer"); 4const plumber = require('gulp-plumber'); 5const rename = require('gulp-rename'); 6const sass = require('gulp-sass'); 7const cleancss = require('gulp-clean-css'); 8const sourcemaps = require('gulp-sourcemaps'); 9const watch = require( 'gulp-watch' ); 10const connect = require('gulp-connect-php'); 11 12const ROOT = './'; 13const SRC = 'src/'; 14const DST = 'dist/'; 15const SRC_SASS = SRC + 'scss/**/*.scss'; 16const SRC_PHP = SRC + 'php/**/*.php'; 17const ALL_PHP = SRC + '**/**/*.php'; 18const SRC_JS = SRC + 'js/**/*.js'; 19 20// PHP & browser-sync 21gulp.task('build-server', function () { 22 gulp.src(ALL_PHP) 23 .pipe(gulp.dest('dist')) 24 connect.server({ 25 port:8001, 26 base:'src' //ローカルサーバーを立てるフォルダ 27 }, function (){ 28 browsersync({ 29 proxy: 'localhost:8001' 30 }); 31 }); 32 console.log('Server was launched'); 33}); 34 35// ブラウザの自動リロード 36gulp.task('browser-reload', function (){ 37 browsersync.reload(); 38 console.log('Browser reload completed'); 39}); 40 41// sass 42gulp.task('sass', function(){ 43 var option = { 44 outputStyle: 'expanded', 45 }; 46 47 return gulp.src(SRC_SASS) 48 .pipe(plumber({ 49 errorHandler: function (error) { 50 console.log(error.message); 51 this.emit('end'); 52 }})) 53 .pipe(sourcemaps.init()) 54 .pipe(sass(option)) 55 .pipe(autoprefixer()) 56 .pipe(cleancss()) 57 .pipe(sourcemaps.write(ROOT)) 58 .pipe(gulp.dest('dist/css')); 59}); 60 61//watch 62gulp.task('watch',function(){ 63 gulp.watch(ALL_PHP, gulp.task('browser-reload')); 64 gulp.watch(SRC_SASS, gulp.task('sass')); 65 gulp.watch("./**/**/*.html", gulp.task('browser-reload')); 66 gulp.watch("./**/**/*.css", gulp.task('browser-reload')); 67 gulp.watch("./**/**/*.js", gulp.task('browser-reload')); 68 69 console.log(('gulp watch started')); 70}); 71 72//default 73gulp.task('default', gulp.series(gulp.parallel('build-server','sass','watch'),function(){ 74 console.log('Default all task done!'); 75})); 76

▼現在のディレクトリはこんな感じです。
/root
├─ gulpfile.js    
├─ package.json
├─ /node_modules
├─ /src
│ └─ /php
│ └─ index.php
│ └─ /page
│ └─ /common
│ └─ header.php
│ └─ footer.php
│ └─ /sass
│ └─ /js
│ └─ /img

└─ /dist(ここにsrcフォルダと同じものがコンパイルされる)

以上を踏まえて
http://localhost:3000/php/
にアクセスして、phpファイルを更新してみるのですが、1回目はブラウザ自動更新成功、2回目以降は自動更新されず。。。
ちなみにSCSSに関してはファイル更新したら何回でも自動でブラウザリロードされます。

なぜphpだけこのような挙動なのでしょうか、、?

長くなってしまい申し訳ありません。
以上を踏まえて原因がわかる方がいらっしゃればご教授いただきたいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問