如何让一个laravel 5.3应用程序在SASS/JS发生变化时自动加载


How to get a laravel 5.3 app to autoreload when SASS/JS changes

想要自动重载页面每当我改变我的SASS或Javascript,但不确定如何在laravel 5.3中使用WebPack。我听说过热模块替换,但它似乎真的很复杂,有没有一种方法可以把它集成到我的gulpfile中。

Gulpfile:

const elixir = require('laravel-elixir');
require('laravel-elixir-vue-2');
/*
 |--------------------------------------------------------------------------
 | Elixir Asset Management
 |--------------------------------------------------------------------------
 |
 | Elixir provides a clean, fluent API for defining some basic Gulp tasks
 | for your Laravel application. By default, we are compiling the Sass
 | file for your application as well as publishing vendor resources.
 |
 */
elixir((mix) => {
    mix.sass('app.scss')
       .webpack('app.js');
});

EDIT(尝试BrowserSync但未更新)

const elixir = require('laravel-elixir');
require('laravel-elixir-vue-2');
var BrowserSync = require('laravel-elixir-browsersync-official');
/*
 |--------------------------------------------------------------------------
 | Elixir Asset Management
 |--------------------------------------------------------------------------
 |
 | Elixir provides a clean, fluent API for defining some basic Gulp tasks
 | for your Laravel application. By default, we are compiling the Sass
 | file for your application as well as publishing vendor resources.
 |
 */
elixir((mix) => {
    mix.sass('app.scss')
       .webpack('app.js')
       .browserSync({
             port: 8000,
             proxy: 'localhost'
        });
});

您可以使用browserSync

安装browserSync命令:

npm install laravel-elixir-browsersync-official --save

然后在gulpfile中添加:

.browserSync({
    proxy: 'app.dev',
})

(将app.dev更改为您实际的应用程序url)

那么当你运行gulp watch时,浏览器应该在检测到更改时自动重新加载。

希望这对你有帮助!