実現したいこと
vite-plugin-live-reloadライブラリを使用して、viteで立ち上げている環境においてphpファイルに変更があったらliveReloadが走るようにしたい。
発生している問題・分からないこと
[vite] page reload wp-content/themes/mytheme/home.php
phpファイルの変更を監視することはできているが、ライブリロードが効かない。
以下にvite.config.jsを添付します。
該当のソースコード
javascript
1import { defineConfig } from 'vite'; 2import liveReload from 'vite-plugin-live-reload'; 3import pug from 'pug'; 4import path from 'path'; 5import fs from 'fs-extra'; 6 7const outDir = 'dist/wp-content/themes/mytheme'; 8const srcDir = 'src'; 9 10function compilePugToPhp() { 11 const pugFiles = fs.readdirSync(srcDir + '/pug').filter(file => path.extname(file) === '.pug'); 12 13 pugFiles.forEach(file => { 14 const filePath = path.join(srcDir + '/pug', file); 15 const php = pug.renderFile(filePath, { 16 basedir: srcDir, 17 filters: { 18 php: (text) => { 19 return `<?php ${text} ?>`; 20 } 21 } 22 }); 23 const outPath = path.join(outDir, path.basename(file, '.pug') + '.php'); 24 fs.outputFileSync(outPath, php); 25 }); 26} 27 28// https://vitejs.dev/config/ 29export default defineConfig({ 30 server: { 31 host: 'localhost', 32 cors: true, 33 port: 3000, 34 hmr: { 35 host: 'localhost', 36 }, 37 proxy: { 38 '/': { 39 target: 'http://localhost:8888', 40 changeOrigin: true, 41 } 42 }, 43 watch: { 44 usePolling: true, 45 include: `${srcDir}/pug/**/*.pug`, 46 }, 47 }, 48 plugins: [ 49 { 50 name: 'pug-transformer', 51 buildStart() { 52 compilePugToPhp(); 53 }, 54 handleHotUpdate({ file, server }) { 55 if (file.endsWith('.pug')) { 56 compilePugToPhp(); 57 } 58 } 59 }, 60 liveReload(`${outDir}/**/*.php`), 61 ], 62});
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
phpファイルに対してviteを使用するとなると、lalavel viteの記事が多く私のような事例の結果は得られませんでした。
補足
特になし
回答1件
あなたの回答
tips
プレビュー