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

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

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

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

Vite

Viteは、フロントエンド向けのビルドツール。JavaScriptはもちろん、さまざまな環境での利用が可能です。ES Modulesを利用することで高速ビルドを実現でき、ファイルの変更時も変更箇所のみを更新できるといった特徴があります。

Q&A

解決済

1回答

254閲覧

viteでphpの変更を監視してliveReloadしたい

fuuta0201

総合スコア1

PHP

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

Vite

Viteは、フロントエンド向けのビルドツール。JavaScriptはもちろん、さまざまな環境での利用が可能です。ES Modulesを利用することで高速ビルドを実現でき、ファイルの変更時も変更箇所のみを更新できるといった特徴があります。

0グッド

0クリップ

投稿2024/08/15 12:42

実現したいこと

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の記事が多く私のような事例の結果は得られませんでした。

補足

特になし

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

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

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

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

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

fuuta0201

2024/08/15 13:41 編集

tezcello様 コメント、ご指摘ありがとうございます。 google検索やAI、エンジニア向けの記事、公式ドキュメントなど調査を踏まえた上で行き詰まってしまい、今回のケースのようなあまり事例がないものではご回答いただける可能性が低いと考えて本サイトともう一つにて質問してしまいました。 マルチポストがマナー違反と言われる所以については理解いたしました。今後はマルチポストは避け、本質問に関しては回答いただけた場合後始末をいたします。
tezcello

2024/08/15 18:26

> 本質問に関しては回答いただけた場合後始末をいたします。 両方の質問でキチンとやってくださいね。 > phpファイルの変更を監視することはできているが、ライブリロードが効かない。 だとしたら、JavaScript(Vite)の問題ではありませんか? PHPとして出来る事は無い(=PHPはカテ違い)様に思います。 > wordpressのテーマ開発 PhpStormは、WordPressのアレコレに対応している様ですし、「Live Edit」も出来る様です。 お試し版もあるので、思った様な事が出来るならIDEとして採用されては?
guest

回答1

0

自己解決

liveReloadが効かなかったのでvite-plugin-browser-syncを使用しました。

投稿2024/09/27 08:51

fuuta0201

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問