前提
現在、gulpで自作htmlのWordpress化をしています。そのなかで、下層ページ(http://localhost/Portfolio/●●)の●●のページで変更を加えたとき(cssなどを変更)自動リロードできるようにgulpで実装したのですが、下層ページのみ自動リロードされません。フロントページは問題なくリロードされます。
実現したいこと
自動リロードできるようにしたい
発生している問題・エラーメッセージ
エラーメッセージは特に出ておりません。
[Browsersync] Reloading Browsers... とターミナルにでているのでとくに問題なく動いているものと推測します。
該当のソースコード
javascript
1// gulpfile.js 2 3const localURL = 'http://localhost/Portfolio/'; 4 5// コンパイルもとのscssファイルの指定 6const PathScss = './src/assets/sass/**/*.scss'; 7 8// scssをコンパイルしたcssファイルの格納先 9const PathCssFolder = '../css'; 10 11// 監視対象のjsファイルを指定 12const PathJS = './src/assets/js/**/*.js'; 13 14// .jsの圧縮ファイルである.minを格納するフォルダの指定 15const PathminJS = '../js'; 16 17// 監視対象のimgフォルダの指定 18const PathImage = './src/assets/img/**/*'; 19 20// imgファイルを格納するフォルダの指定 21const PathImageFolder = '../img/'; 22 23// 監視対象のHTMLファイルの指定 24const PathHTML = './src/**/*.html'; 25 26// 監視対象のPHPファイルの指定 ※Wordpressなどの開発のみ使用 27const PathPHP = '../**/*.php'; 28 29// -------------------------------------------------- 30 31 32// ガルプの読み込み 33const gulp = require('gulp'); 34const sass = require('gulp-sass')(require('sass')); 35const postcss = require('gulp-postcss'); 36const autoprefixer = require('autoprefixer'); 37const cssSorter = require('css-declaration-sorter'); 38const mmq = require('gulp-merge-media-queries'); 39const browserSync = require('browser-sync'); 40const cleanCss = require('gulp-clean-css'); 41const uglify = require('gulp-uglify'); 42const rename = require('gulp-rename'); 43const htmlBeatutify = require('gulp-html-beautify') 44 45// sassをcssにコンパイルする関数 46function compileSass() { 47 // srcの中のフォルダの中まで辿り、.scss拡張子をコンパイルできるような記述 48 return gulp.src(PathScss) 49 50 // コンパイルの処理を記述 51 .pipe(sass()) 52 .pipe(postcss([autoprefixer(), cssSorter({ 53 order: 'concentric-css' 54 })])) 55 .pipe(mmq()) 56 57 // 出力先のフォルダ 58 .pipe(gulp.dest(PathCssFolder)) 59 60 .pipe(cleanCss()) 61 .pipe(rename({ 62 suffix: '.min' 63 })) 64 65 .pipe(gulp.dest(PathCssFolder)) 66} 67 68// この関数で、指定ファイルを監視できる 69function watch() { 70 // 監視対象ファイルに変更があればcompileSassを実行 71 // gulp.series(compileSass, browserReload)は左から順に実行されていく 72 // scssが更新されたら、コンパイルを実行⇒ブラウザを反映するためリロード 73 gulp.watch(PathScss, gulp.series(compileSass, browserReload)); 74 75 gulp.watch(PathJS, gulp.series(minJS, browserReload)); 76 77 gulp.watch(PathImage, gulp.series(copyImage, browserReload)); 78 79 gulp.watch(PathHTML, gulp.series(formatHTML, browserReload)); 80 81 // .phpファイルが更新されたらリロード 82 gulp.watch(PathPHP, browserReload); 83} 84 85// ブラウザを開く関数 86function browserInit(done) { 87 88 browserSync.init({ 89 90 91 // ローカルサイトの設定は以下 92 proxy: localURL 93 }); 94 95 done(); 96} 97 98// これでリロード 99function browserReload(done) { 100 browserSync.reload(); 101 102 done(); 103} 104 105// 圧縮したjsファイルを生成 106function minJS() { 107 return gulp.src(PathJS) 108 .pipe(gulp.dest(PathminJS)) 109 .pipe(uglify()) 110 .pipe(rename({ 111 suffix: '.min' 112 })) 113 .pipe(gulp.dest(PathminJS)) 114} 115 116// フォーマットが崩れていてもきれいに生成し直す関数 117function formatHTML() { 118 return gulp.src(PathHTML) 119 120 // パラメータを複数入れられる 121 .pipe(htmlBeatutify({ 122 indent_size: 2, 123 indent_with_tabs: true, 124 })) 125 .pipe(gulp.dest('./public')) 126} 127 128// src/assets/img/にあるファイルをすべてpublic/assets/imgに入れる関数 129function copyImage() { 130 return gulp.src(PathImage) 131 .pipe(gulp.dest(PathImageFolder)) 132} 133 134// ターミナルで実行するための記述 135// ターミナルでnpx gulp test で実行する 136// exports.test = test; 137exports.compileSass = compileSass; 138exports.watch = watch; 139exports.browserInit = browserInit; 140 141// gulp.parallel(browserInit, watch)は同時に実行する 142exports.dev = gulp.parallel(browserInit, watch); 143exports.minJS = minJS; 144exports.formatHTML = formatHTML; 145 146exports.build = gulp.parallel(formatHTML, minJS, compileSass, copyImage); 147 148
試したこと
いろいろ検索してみたのですが、該当の記事を見つけることが来ませんでした。
そもそもgulp側の問題ではないのでしょうか?問題の切り分けも難しく、手詰まりの状態です。
補足情報(FW/ツールのバージョンなど)
Wordpress6.1.1
vsCode 1.74.3
あなたの回答
tips
プレビュー