【Laravel7.x 】Browsersyncでホットリロードを誰でも簡単に

Pocket

実現したいこと

編集・保存してからnpm run devしてページを読み込む作業がめんどくさいので、保存後、自動でブラウザのリロードまで実施されるようにします。

 

環境

・laravel7.x

・macOS

・MAMP

 

方法

webpack.mixを編集

const mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/style.scss', 'public/css')
    .browserSync({
        files: [
            "resources/**/*",
            "config/**/*",
            "routes/**/*",
            "app/**/*",
            "public/**/*"
        ],
        proxy: {
            target: "http://127.0.0.1:8000",
        },
        open: false, //起動時にブラウザを開かない
        reloadOnRestart: true //起動時にブラウザにリロード命令おくる
});

  

1つめのターミナルでphp artisan serve

ターミナルでサーバーを立ち上げます。

$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
[Wed Oct 21 22:10:09 2020] PHP 7.4.7 Development Server (http://127.0.0.1:8000) started

  

2つめのターミナルでnpm run watch

別のターミナル画面でnpm run watch を入力します。

$ npm run watch

> @ watch /Applications/MAMP/htdocs/laravel_sample
> npm run development -- --watch


> @ development /Applications/MAMP/htdocs/laravel_sample
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"

10% building 1/1 modules 0 active
webpack is watching the files…

98% after emitting SizeLimitsPlugin

 DONE  Compiled successfully in 3851ms                                                                                                                                                          22:10:54

         Asset      Size   Chunks             Chunk Names
/css/style.css  23.1 KiB  /js/app  [emitted]  /js/app
    /js/app.js   2.7 MiB  /js/app  [emitted]  /js/app
[Browsersync] Proxying: http://127.0.0.1:8000
[Browsersync] Access URLs:
 ----------------------------------------
       Local: http://localhost:3000
    External: http://192.168.100.105:3000
 ----------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 ----------------------------------------
[Browsersync] Watching files...

 

ブラウザ画面でhttp://localhost:3000を開いた時に右上にBrowsersync:connectedという表記が出てきたら成功です。

 

最後に

どんどん自動化していくと楽になりますよね。

今回のものはかなり簡単に導入できるので、是非試してみてください!