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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

1981閲覧

Laravel10 blade.phpファイルから「resources/js」内にあるjsファイルを読み込みたい

CoderOwlWing

総合スコア3

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2023/10/03 02:46

実現したいこと

  • Laravel10 blade.phpファイルから「resources/js」内にあるjsファイルを読み込みたい

前提

WindowsPC上にWSLを使って建てた、仮想のUbuntsu環境下で、Laravel10の学習を行っております。
blade.phpファイルから
「resources/js」内にあるjsファイルを読み込もうと思い、
blade.phpファイル内に、<script src="{{asset('resources/js/hoge.js')}}"></script>
のような形で記述してみましたが、読み込めませんでした。

調べたところ、Viteでビルドしてからでないと、jsファイルは読み込めないという話を見つけましたので、
viteをインストールの上、npm run buildでビルドを試みました。
しかし、以下のエラーが発生しました。

発生している問題・エラーメッセージ

'\\wsl.localhost\Ubuntu\home\username\example-app' 上記の現在のディレクトリで CMD.EXE を開始しました。 UNC パスはサポートされません。Windows ディレクトリを既定で使用します。 vite v4.4.9 building for production... ✓ 0 modules transformed. ✓ built in 3.29s Could not resolve entry module "index.html". error during build: RollupError: Could not resolve entry module "index.html". at error (file:///C:/Users/username/AppData/Roaming/npm/node_modules/vite/node_modules/rollup/dist/es/shared/node-entry .js:2287:30) at ModuleLoader.loadEntryModule (file:///C:/Users/username/AppData/Roaming/npm/node_modules/vite/node_modules/rollup/di st/es/shared/node-entry.js:24881:20) at async Promise.all (index 0)

エラーメッセージから、
「ビルドの際に参照するファイルのパスが、Windowsのルートディレクトリを起点にされてしまっていることで、必要なファイルが見つからず、エラーが起きている」
と理解しております。
この場合、どうすればUbuntsuのディレクトリでファイルを探すようにできるのでしょうか。

試したこと

・jsファイルを「resources/js」内に置く
・blade.php内で、<script src="{{asset('resources/js/currentTimer.js')}}"></script>とする
npm run buildでviteのビルドを実行

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

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

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

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

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

guest

回答1

0

自己解決

別のところで頂戴したアドバイスを基に、解決いたしました。
以下に原因と解決手段をまとめておきます。

原因

windowsの方のnpmを呼び出して処理を行っていたため、エラーが発生していた。

解決手段

  1. sail npm install viteで、viteをインストール
  2. プロジェクトのルートディレクトリにできた「vite.config.js」ファイルに設定を追記
  3. resource/js 内にある「main.js」内で、読み込みたいjsファイルをimport
  4. sail npm run devで、コンパイル実行
  5. blade.phpファイル内の<header>内で、読み込みたいjsファイルの読み込みを行う
  6. jsファイル読み込み完了!

*2補足

javascript

1export default defineConfig({ 2 plugins: [ 3 laravel({ 4 input: ['resources/css/app.css', 'resources/js/app.js'], 5 refresh: true, 6 }), 7 ], 8 root: './', // プロジェクトのルートディレクトリ 9 base: '/dist/', // 出力ファイルのベースパス 10 build: { 11 outDir: 'public/dist', // 出力先のディレクトリ 12 rollupOptions: { 13 input: 'resources/js/main.js', // Viteがバンドルを作成する際に起点とするjsファイルを指定 14 } 15 } 16});

*3補足

javascript

1import fizz from './fizz.js'; 2import buzz from './buzz.js'; 3import fizzbuzz from './fizzbuzz.js';

*呼び出し元のblade.phpファイル内の<head>内で、コンパイルして生成されたjsファイルの読み込みを行う

<head> <!-- titleとかlinkとか --> @vite('resources/js/fizzbuzz.js') <!--3でimportしたファイルの中から選ぶ--> </head>

投稿2023/10/03 09:32

CoderOwlWing

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問