如何在 laravel homestead 环境中使用 gulp 实时重新加载 browsersync?

How to live reload browsersync using gulp in laravel homestead environment?

我正在尝试 运行 Browsersync 在 homestead laravel 环境中使用 gulp 任务 运行ner。 Browsersync 在 commander 中启动,当我进行更改时,Browsersync 说它是 "reloading browsers"。可能是,但我无法实时看到重新加载,除非我手动刷新浏览器。

我尝试了 mix 并且成功了,但是我正在使用 gulp 来发布 postcss,我发现很难在 mix 中设置它...

var gulp = require('gulp'),
watch = require('gulp-watch'),
browserSync = require('browser-sync').create();

gulp.task('watch', function() {

    browserSync.init(null, {
        notify: false,
        port: 8000,
        host: '192.168.10.10',
        proxy: 'test.test',
        open: false,
        files: [
                'app/**/*.php',
                'resources/views/**/*.php',
                'public/js/**/*.js',
                'public/css/**/*.css'
        ],
        watchOptions: {
                usePolling: true,
                interval: 500
        }
    });

    watch('./resources/**/*.php', function() {
        browserSync.reload();
    });
});

我还添加了这个:

@if (getenv('APP_ENV') === 'local')
    <script id="__bs_script__">//<![CDATA[
        document.write("<script async src='http://HOST:3000/browser-sync/browser-sync-client.js?v=2.18.12'><\/script>".replace("HOST", location.hostname));
        //]]>
    </script>
@endif

到主应用 php 文件,但它对 gulp 浏览器同步设置没有影响。 (混合是 运行宁罚款...)。

请暂停:)

我不是 100% 确定你的设置如何,但我通常只使用 :

初始化 brwoserSync
browserSync.init({
  proxy: 'localhost:8000'
});

如果我的 php 服务器在本地 运行,我就可以在 http://localhost:3000

访问它

所以我假设您是 运行 IP 192.168.10.10 和端口 8000 的虚拟机 Ubuntu,所以此设置可能有效,但我还不能 100% 确定

var gulp = require('gulp'),
watch = require('gulp-watch'),
browserSync = require('browser-sync').create();

gulp.task('watch', function() {

    browserSync.init(null, {
        notify: false,
        proxy: '192.168.10.10:8000',
        open: false,
        files: [
                'app/**/*.php',
                'resources/views/**/*.php',
                'public/js/**/*.js',
                'public/css/**/*.css'
        ],
        watchOptions: {
                usePolling: true,
                interval: 500
        }
    });

    watch('./resources/**/*.php', function() {
        browserSync.reload();
    });
});